在C#中的节点内搜索的XmlNode.SelectSingleNode语法

use*_*673 12 c# xml xmldocument

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

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

我希望从foreach内部的当前myNode中搜索LastName元素.发生的事情是找到的LastName始终来自带有myNodes的第一个节点.我不想硬编码LastName的确切路径,而是允许它灵活地找到myNode的内部.我原以为在myNode上使用SelectSingleNode方法会将搜索限制在myNode的xml内容中,而不包括父节点.

Bra*_*ger 27

领先//始终从文档的根开始; 用于.//从当前节点开始并仅搜索其后代:

XmlNode lastnameNode = myNode.SelectSingleNode(".//LastName");
Run Code Online (Sandbox Code Playgroud)