xml学习6 在cXpath实例
更新时间:2023-07-15前言
在C#中,XPath是一种用于XML文档中查找和解析节点的语言。通过XPath可以从XML文档中选取数据。本篇文章将介绍如何在C#中使用XPath。我们将从基本语法开始,以及在C#中如何解析XML文档和使用XPath表达式来选择XML节点。
基本语法
在XPath中,节点可以通过路径表达式来选取。路径表达式基于文档节点,或者当前节点,或者父节点,或者子节点等等。例如,我们可以使用双斜线“//”来匹配文档中的任何位置的节点:
using System.Xml.XPath; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlAsString); XPathNavigator xpathNav = xmlDoc.CreateNavigator(); XPathNodeIterator xpathIter = xpathNav.Select("//book[@id='bk101']");
在上面的代码段中,我们使用XPathNavigator和XPathNodeIterator来进行XML文档解析和节点的选择。其中,XPathNavigator表示一个当前位置的引用,XPathNodeIterator是一个可遍历的节点集合,可以用于枚举选定的节点。
选择XML节点
XPath表达式中可以使用很多不同的表达式来选取XML文档中的节点。通常我们使用属性、节点名称和路径来进行选择。例如,我们可以使用“[@attribute='value']”来选择具有特定属性值的节点:
XPathNavigator xpathNav = xmlDoc.CreateNavigator(); XPathNodeIterator xpathIter = xpathNav.Select("//book[@id='bk101']"); while (xpathIter.MoveNext()) { string title = xpathIter.Current.SelectSingleNode("title").Value; string author = xpathIter.Current.SelectSingleNode("author").Value; Console.WriteLine("Book: {0}, Author: {1}", title, author); }
在上面的代码段中,我们使用“SelectSingleNode()”方法来选择book节点中的子节点title和author,并输出它们的值。
总结
在C#中使用XPath可以非常方便地解析XML文档,选取到具有特定属性和节点名称的节点。XPath表达式使用基本的路径表达式和属性选择器进行节点的选择,同时XPath提供了非常丰富的函数和运算符,可以方便地对节点进行操作和筛选。