我想将对子节点的搜索限制在当前节点内。例如,我有以下代码:

XmlNodeList myNodes = xmlDoc.DocumentElement.SelectNodes("//Books");
    foreach (XmlNode myNode in myNodes)
    {
         string lastName = "";
         XmlNode lastnameNode = myNode.SelectSingleNode("//LastName");
         if (lastnameNode != null)
         {
              lastName = lastnameNode.InnerText;
         }
    }

我希望从foreach中的当前mynode中搜索lastname元素。所发生的情况是,找到的姓氏总是来自第一个没有mynodes的节点。我不想硬编码lastname的确切路径,而是允许它灵活地确定在mynode内部的位置。我本以为在mynode上使用selectsinglenode方法会将搜索限制在mynode的xml内容内,而不包括父节点。

最佳答案

前导//始终从文档的根开始;使用.//从当前节点开始并仅搜索其子节点:

XmlNode lastnameNode = myNode.SelectSingleNode(".//LastName");

关于c# - XmlNode.SelectSingleNode语法以在C#中的节点内搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6950032/

10-09 12:53