使用XPath读取xml

本文关键字:xml 读取 XPath 使用 | 更新日期: 2023-09-27 18:24:35

我有这个XML:

<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
  <book id="ISBN-NUMBER">
    <title>
      The Autobiography of Benjamin Franklin
    </title>
    <author type="major">
      <first-name>
        Benjamin
      </first-name>
      <last-name>
        Franklin
      </last-name>
    </author>
    <price>
      8.99
    </price>
  </book>
  <book id="ISBN-NUMBER">
    <title>
      The Confidence Man
    </title>
    <author type="major">
      <first-name>
        Herman
      </first-name>
      <last-name>
        Melville
      </last-name>
    </author>
    <price>
      11.99
    </price>
  </book>
  <book id="ISBN-NUMBER">
    <title>
      The Gorgias
    </title>
    <author type="major">
      <name>
        Plato
      </name>
    </author>
    <price>
      9.99
    </price>
  </book>
</bookstore>

如何使用XPath读取它?我使用过:

XPathDocument doc = new XPathDocument(stream);
XPathNavigator nav = doc.CreateNavigator();
XPathNodeIterator node = nav.Select("bookstore/book");
while (node.MoveNext())

但是我该如何离开这里呢?如果节点是title、author和price,我想我需要一个swtich语句来swtich。如果是书,那么我需要阅读图书id,与作者和类型相同。

使用XPath读取xml

我想您可以使用node.Select('//title')来获取标题。我不确定这在C#中是如何工作的,但常见的xpath如下

  • //bokstore/book选择书本节点
  • //bookstore/book/title选择标题节点
  • CCD_ 4选择第n个节点的所有子节点