如何在xml中找到单个子节点

本文关键字:单个 子节点 xml | 更新日期: 2023-09-27 18:02:45

<bookstore>
    <book>
         <title>bob</title>
         <author>fred</author>
     </book>
...

使用c# XmlTextReader,如何仅在书名为bob时打印出作者?

如何在xml中找到单个子节点

您可以使用XmlDocument

  1. 为"book"使用getElementByTagName
  2. 遍历元素并使用condition获取包含"BOB"的正确标题
  3. 从父图书节点获取作者值。

可以使用xpath查找节点:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("yourfile.xml"); 
string path = "/bookstore/book[title='bob']"; // find the book node only when the book title is bob
XmlNode node = xmlDoc.SelectSingleNode(path); // get the book node
string author = node.SelectSingleNode("author").InnerText; // find the author node, return its inner text  

如果book title的值不是唯一的,则可以使用XmlDocument。SelectNodes代替。

XmlNodeList books = xmlDoc.SelectNodes(path); // find all books whose title is bob 
foreadh(XmlNode book in books)
{
    string author = node.SelectSingleNode("author").InnerText;
    ...
}