网站的维护和更新,林业公司网站模版,单页网站系统,wordpress 小说 采集器最近在用到HtmlAgliltyPack进行结点查询时#xff0c;发现这里选择结点使用的是XPath。所以这里总结一下在C#中使用XPath查询XML的方式。习惯了用Linq#xff0c;这里也是用的Linq to xml的。Linq To XML的核心类是XDocument和XElement、XAttribute#xff0c;下面简单介绍一…最近在用到HtmlAgliltyPack进行结点查询时发现这里选择结点使用的是XPath。所以这里总结一下在C#中使用XPath查询XML的方式。习惯了用Linq这里也是用的Linq to xml的。Linq To XML的核心类是XDocument和XElement、XAttribute下面简单介绍一下使用。需要引用using System.Xml.Linq命名空间这三个类简单理解为XDocument:打开的整个XML文档XElement:节点元素XAttribute:属性如有以下XML文件测试XML汪家羊肉馆62/人12/人打开XML文件1 XDocument doc XDocument.Load(demo.xml);获取根节点(html节点 返回XElement类型)var root doc.Root;获取第一个子节点(返回XElement类型)1 var firstNode root.FirstNode;获取全部子节点(返回IEnumerable)1 var allChildNode root.Nodes();获取指定名称的第一个子节点(返回XElement类型)1 var headNode root.Element(head);获取指定名称的全部子节点(返回IEnumerable)var allNamedNode root.Elements(head);获取节点指定名称的属性()1 var attribute root.Element(body).Element(div).Attribute(class);获取节点的全部属性1 var allAttributes root.Attributes();使用XPath查询(需要引用using System.Xml.XPath命名空间)1 var xpathQeury root.XPathSelectElement(body/div);获取节点的名称和值1 //获取结点的名称2 var nodeName root.Name;3 //获取节点的值4 var nodeValue root.Value;保存XML1 doc.Save(demo.xml);Linq查询(获取12/人节点下的值)这里仅做示例返回返回IEnumerable类型的都可以进行Linq查询不使用XPath1 var queryResult root.Element(body).Element(div).Elements(div).ElementAt(1).Elements(span).Where(xx.Attribute(class) ! null x.Attribute(class).Value price2).FirstOrDefault();2 if(queryResult ! null)3 Console.WriteLine(queryResult.Value);使用XPath1 var xpathQueryResult root.XPathSelectElements(body/div/div[2]/span).Where(x x.Attribute(class) ! null x.Attribute(class).Value price2).FirstOrDefault();2 if(xpathQueryResult ! null)3 Console.WriteLine(xpathQueryResult.Value);输出结果都为下标签XML,XPath,C#,Linq,var,root,节点来源 https://www.cnblogs.com/zhaotianff/p/11319871.html