c语言编程笔录

首页 >   > 笔记大全

笔记大全

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提供了非常丰富的函数和运算符,可以方便地对节点进行操作和筛选。