您的位置:首页 > 其它

LINQ to XML

2011-02-24 16:45 441 查看
LINQ最大的好处是LINQ to XML,我觉得。

先引入System.Xml.Linq命名空间,其中常用的属性就是XElement。

LINQ基于DOM方式来操作XML,意思就是将XML文件在内存中构造成DOM树,然后来进行操作,将XML加载到内存两种方法。

1:将XML文件加载到内存。 XElement xml1 = XElement.Load(Server.MapPath("book.xml"));

2:构造XML树。

XElement xml2 = new XElement("People",

new XElement("Name", new XAttribute("中文", "哈哈") //这里只有一个后括号

new XElement("Age", "18"),

new XElement("Sex", "男")

),

new XElement("Name", new XAttribute("中文", "呵呵") //这里只有一个后括号

new XElement("Age", "19"),

new XElement("Sex", "女")

)

);

这时构造出来的XML树结构为

<People>

<Name 中文="哈哈">

<Age>18</Age>

<Sex>男</Sex>

</Name>

<Name 中文="呵呵">

<Age>19</Age>

<Sex>女</Sex>

</Name>

</People>

然后用LINQ来查找

IEnumerable<XElement> name =

from ele in xml2.Elements("Name")

where (string)ele.Attribute("中文")=="哈哈" //有一个转换

select ele ;

//这时的LINQ表达式仅仅是一个表达式,并无结果。只有要引用LINQ表达式的结果时,LINQ表达式才会执行,查询出结果。

foreach ( XElement x in name)

{

Response.Write(Server.HtmlEnCode(x.Element("Age"));

}

//运行结果为18

由于XML中有"<"和">"符号,所以要用HtmlEncode来预处理结果。实际ele的结果是一个XML子元素

<Name 中文="哈哈">

<Age>18</Age>

<Sex>男</Sex>

</Name>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: