C#导航器Xpath与XPathNavigator类
什么是XPath?
XPath是一种用来在XML文档中查找信息的语言,XPath的基本语法很简单,但是可以很方便的从文档中查找我们想要的内容,并且这种语言的查询方式是与平台和编程语言无关的。
XpathNavigator类的作用
XpathNavigator类用来实现XPath查询,可以在XML文档中定位节点,属性,跨越文档、跳转节点,等等,提供了许多方便快捷的XPath查询功能。
Xpath的基本语法
XPath的基本语法表达式由以下组成:
- 根节点 “/”
- 子节点 “//”
- 节点名称
- 谓词
- 属性
- 特性
例如:/bookstore/book[1]
表示查询所有bookstore节点下的第一个book节点。
XPathNavigator类的使用
XPathNavigator类的使用,大概分成以下几个步骤:
- 利用XmlDocument类或XmlReader类创建XML文档。
- 利用XPathNavigator类定位到要查询的节点或属性。
- 利用XPathNavigator类提供的方法查询节点或属性。
代码示例1
下面是一个示例代码,使用XPathNavigator类查询bookstore节点下的所有book节点的title属性:
XPathDocument doc = new XPathDocument("books.xml");
XPathNavigator nav = doc.CreateNavigator();
XPathNodeIterator iterator = nav.Select("/bookstore/book/@title");
while (iterator.MoveNext())
{
Console.WriteLine(iterator.Current.Value);
}
解析:
- 使用XPathDocument类读取books.xml文件内容,并传入CreateNavigator方法。
- 利用Select方法来查询bookstore节点下的所有book节点的title属性,并返回XPathNodeIterator对象。
- 通过MoveNext和Current方法,遍历XPathNodeIterator对象,获取book节点的title属性,并输出。
代码示例2
下面是一个示例代码,使用XPathNavigator类查询CD_catalog.xml文件中artist节点为“Bob Dylan”的所有album节点:
XPathDocument doc = new XPathDocument("CD_catalog.xml");
XPathNavigator nav = doc.CreateNavigator();
XPathNodeIterator iterator = nav.Select("//artist[text()='Bob Dylan']/../title");
while (iterator.MoveNext())
{
Console.WriteLine(iterator.Current.Value);
}
解析:
- 使用XPathDocument类读取CD_catalog.xml文件内容,并传入CreateNavigator方法。
- 利用Select方法以XPath语法查询符合条件的节点,并返回XPathNodeIterator对象。
- 通过MoveNext和Current方法,遍历XPathNodeIterator对象,获取符合条件的节点的title属性,并输出。
以上就是C#导航器Xpath与XPathNavigator类的完整攻略,希望对您有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#导航器Xpath与XPathNavigator类 - Python技术站