LINQ to XML的编程基础(2)


public static void CreateCategoriesFromDatabase()
{
using (NorthwindDataContext db = new NorthwindDataContext())
{
XElement root = new XElement("Categories",
db.Categories
.Select
(
c => new XElement
(
"Category"
, new XElement("CategoryID", c.CategoryID)
, new XElement("CategoryName", c.CategoryName)
, new XElement
(
"Products"
, c.Products
.Select
(
p => new XElement
(
"Product"
, new XElement("ProductName", p.ProductName)
)
)
.Take(2)
)
)
)
.Take(3)
);
root.Save(path);
}
}


运行该示例将会得到一个xml文件,其内容为:

复制代码 代码如下:


<?xml version="1.0" encoding="utf-8"?>
<Categories>
<Category>
<CategoryID>1</CategoryID>
<CategoryName>Beverages</CategoryName>
<Products>
<Product>
<ProductName>Chai</ProductName>
</Product>
<Product>
<ProductName>Chang</ProductName>
</Product>
</Products>
</Category>
<Category>
<CategoryID>2</CategoryID>
<CategoryName>Condiments</CategoryName>
<Products>
<Product>
<ProductName>Aniseed Syrup</ProductName>
</Product>
<Product>
<ProductName>Chef Anton's Cajun Seasoning</ProductName>
</Product>
</Products>
</Category>
<Category>
<CategoryID>3</CategoryID>
<CategoryName>Confections</CategoryName>
<Products>
<Product>
<ProductName>Pavlova</ProductName>
</Product>
<Product>
<ProductName>Teatime Chocolate Biscuits</ProductName>
</Product>
</Products>
</Category>
</Categories>


XElement类包含了许多方法,这些方法使得处理xml变得轻而易举。有关这些方法请参照MSDN。
其中,Save、CreateReader、ToString和WriteTo方法是比较常用的三个方法:

方法

 

参数

 

返回值

 

描述

 

CreateReader

 

 

System.Xml.XmlReader

 

创建此节点的 XmlReader

 

Save

 

System.String

 

void

 

将此元素序列化为文件

 

System.IO.TextWriter

 

void

 

将此元素序列化为 TextWriter

 

System.Xml.XmlWriter

 

void

 

将此元素序列化为 XmlWriter

 

System.String,

System.Xml.Linq.SaveOptions

 

void

 

将此元素序列化为文件,并可以选择禁用格式设置

 

System.IO.TextWriter,

System.Xml.Linq.SaveOptions

 

void

 

将此元素序列化为 TextWriter,并可以选择禁用格式设置

 

WriteTo

 

System.Xml.XmlWriter

 

void

 

将此元素写入 XmlWriter

 

ToString

 

 

System.String

 

返回此节点的缩进 XML

 

System.Xml.Linq.SaveOptions

 

System.String

 

返回此节点的 XML,并可以选择禁用格式设置

 

现在有很多使用XmlReader作为数据源的应用程序,使用XElement可以很方便地提供支持。
3、XAttribute类
XAttribute类用来处理元素的属性,属性是与元素相关联的“名称-值”对,每个元素中不能有名称重复的属性。使用XAttribute类与使用XElement类的操作十分相似,下面的示例演示了如何在创建xml树时为其添加一个属性:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjjxpg.html