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