本文主要是介绍LINQ 步步学-LINQ to XML,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
XML 是个好东西,但查询 XML 真的不方便,自从有了 LINQ to XML 后,一切改变了。
假设有 XML 文件如下:
<company>
<name engName="cftea">千一网络</name>
<employees>
<employee>
<name age="29">张龙</name>
</employee>
<employee>
<name age="28">赵虎</name>
</employee>
</employees>
</company>
我们用 LINQ to XML 去查 engName 的值,代码如下:
var engName = from x in xd.Element("company").Element("name").Attributes()
where x.Name == "engName"
select x.Value;
Response.Write(engName.First<string>());
显示为 cftea。
说明:xd.Element("company").Element("name") 并不包括 employees 中的 name 节点。
同样用上面的 XML 文件,查询年龄 > 28 岁的雇员:
var employees = from emp in xe.Element("employees").Elements()
where Convert.ToInt32(emp.Element("name").Attribute("age").Value) > 28
select new { Name = emp.Element("name").Value, Age = emp.Element("name").Attribute("age").Value };
foreach (var employee in employees)
{
Response.Write(employee.Name + "<br>");
}
emp in xe.Element("employees").Elements() 实际上表示将 employees 的儿子节点存在 emp 中。
XDocument 与 XElement
两个例子中,一个用了 XDocument、一个用了 XElement,二者的区别是什么呢?我们拿第二个例的 from 语句来作个对比:
from emp in xe.Element("employees").Elements()
可以看出:如果使用 XDocument,则需要从根节点,一步一步往下;而使用 XElement 则比较自由,可以直接指定任意层次的节点。
这篇关于LINQ 步步学-LINQ to XML的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!