System.Xml.Linq 命名空间中,有一系列新的LINQ to XML 帮助对象,使处理内存中的XML文档变的非常简单。
示例使用的Hamlet.xml来源自C#高级编程源代码。
XDocument
XDocument 代替了.Net 3.5 之前的XmlDocument 对象,它更容易处理XML文档。
XDocument 可以和下面要说到的XML对象一起使用。
XDocument 有两个重要的方法Load() 和 Save() 方法,这两个方法的功能和名字一样好理解就是加载和保存XML格式的文本或者流信息。
using System.Xml.Linq;
public void LoadAndSave()
{
//真实使用的时候最好不要在网站中,避免XML被直接下载。
XDocument xdoc = XDocument.Load(Server.MapPath("hamlet.xml"));
Response.Write(xdoc.Root.Name.ToString() + "<br />");
Response.Write(xdoc.Root.HasAttributes.ToString() + "<br />");
//另存一份到C盘根目录
xdoc.Save(@"C:\CopyOfHamlet.xml");
}
XElement
XElement是一个非常常用的对象,他用于表示或者创建一个代表XML元素的对象,这个元素的范围没有限制,可能是XML根元素也可以是最小的叶子元素。
public void MyXElement()
{
//建立一个层次元素
//XElement 的第一个参数是元素名称,第二个参数是元素的值
XElement xe = new XElement("Company",
new XElement("CompanyName", "Lipper"),
new XElement("CompanyAddress",
new XElement("Address", "123 Main Street"),
new XElement("City", "St. Louis"),
new XElement("State", "MO"),
new XElement("Country", "USA")));
TextBox1.Text = xe.ToString();
}
XNamespace
XNamespace 可以为任何一个XML元素添加命名空间标识属性。
public void MyXNamespace()
{
//定义并添加一个命名空间
XNamespace xn = “http://blog.csdn.net/xuejianwu/”;
XElement xe = new XElement(xn + "Company",
new XElement("CompanyName", "Lipper"),
new XElement("CompanyAddress",
new XElement("Address", "123 Main Street"),
new XElement("City", "St. Louis"),
new XElement("State", "MO"),
new XElement("Country", "USA")));
TextBox1.Text = xe.ToString();
}
XComment
XComment 用于将XML注释<!-- 注释--> 添加到XML内容当中。
public void MyXComment()
{
XDocument xdoc = new XDocument();
XComment xc1 = new XComment("XML 注释1");
xdoc.Add(xc1);
XElement xe = new XElement("元素名", new XComment("下面是元素的值"), "元素值");
xdoc.Add(xe);
XComment xc2 = new XComment("XML 注释2");
xdoc.Add(xc2);
TextBox1.Text = xdoc.ToString();
}
XAttribute
XAttribute 可以猜到这个与XML属性有关的重要属性,使用的频率也是非常的多,他可以代表一个XML属性或者添加一个XML属性。
public void MyXAttribute()
{
XElement xe = new XElement("Company",
new XAttribute("AttributeName", "AttributeValue"),
new XElement("CompanyName", "Lipper"),
new XElement("CompanyAddress",
new XElement("Address", "123 Main Street"),
new XElement("City", "St. Louis"),
new XElement("State", "MO"),
new XElement("Country", "USA")));
TextBox1.Text = xe.ToString();
}