C#小Tip:Xml操作简明手册 2

2)如何创建一个xml文档

由于xml实质也只是一个文本文件,所以最简单你可以直接使用System.IO下的类生成一个文件,并存储成xml文件,当然,你需要手动保证该文件形式良好,比如必须有根元素、必须有关闭标签、必须正确嵌套等等。

 

如果你懒得自己去想文件的形式,可以使用System.Xml下的类。

 


XmlDocument xdoc = new XmlDocument();
XmlDeclaration xdcl
= xdoc.CreateXmlDeclaration("1.0", "iso-8859-1", "");
xdoc.AppendChild(xdcl);
//XmlNode xnode = xdoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
//xdoc.AppendChild(xnode);

//Of course you can use CreateNode here(with the XmlNodeType.Element),
//so no more questions about 'what difference between this 2 methods?',
XmlElement root = xdoc.CreateElement("music");
xdoc.AppendChild(root);

XmlElement xelm
= xdoc.CreateElement("song");
xelm.SetAttribute(
"title", "Oh,girl");
xelm.InnerText
= "Oh,girl,i'd be in trouble if you left me now";
root.AppendChild(xelm);
try
{
     xdoc.Save(
"xmlsample-1.xml");
}
catch (Exception ex)
{
     Console.WriteLine(ex.Message);
}

结果:


<?xml version="1.0" encoding="iso-8859-1"?>
<music>
  
<song title="Oh,girl">Oh,girl,i'd be in trouble if you left me now</song>
</music>

 

由于像XmlDeclarationXmlElement这些类都继承自XmlNode,故CreateNode()方法是最通用的,可以通过使用XmlNodeType来生成不同类型的节点。

另外,往元素中插入文本,使用的属性是“InnerText”。

 

方法二:

XmlDocument还有一个LoadXml()方法,实际上跟一行一行写入文本没区别,就是预先写好xml,并把它作为字符串传给LoadXml()方法。

 

方法三:

如果你手头有一个DataTable,还可以使用DataTable.WriteXml()方法。

 


DataTable dt = new DataTable("music");
dt.Columns.Add(
"title", typeof(string));
dt.Columns.Add(
"artist");
dt.Columns.Add(
"genre");
dt.Columns.Add(
"album");
//
dt.Rows.Add("Oh,girl", "The Chi-lites", "Soul", "A lonely man");
dt.Rows.Add(
"What if", "Babyface", "R&B", "Unknown");
dt.AcceptChanges();
//
dt.WriteXml("xmlsample-2.xml");

结果:

 


<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  
<music>
    
<title>Oh,girl</title>
    
<artist>The Chi-lites</artist>
    
<genre>Soul</genre>
    
<album>A lonely man</album>
  
</music>
  
<music>
    
<title>What if</title>
    
<artist>Babyface</artist>
    
<genre>R&amp;B</genre>
    
<album>Unknown</album>
  
</music>
</DocumentElement>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值