簡體   English   中英

在C#中的節點內搜索的XmlNode.SelectSingleNode語法

[英]XmlNode.SelectSingleNode syntax to search within a node in C#

我想限制我的搜索子節點在我當前的節點內。 例如,我有以下代碼:

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元素。 發生的事情是找到的LastName始終來自第一個帶有myNodes的節點。 我不想硬編碼LastName的確切路徑,而是允許它靈活地找到myNode的內部。 我原以為在myNode上使用SelectSingleNode方法會將搜索限制在myNode的xml內容中,而不包括父節點。

領先的//總是從文檔的根開始; 使用.//從當前節點開始並只搜索其后代:

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

實際上,問題與XPath有關。 XPath語法 //意味着您可以從當前節點中選擇與選擇匹配的文檔中的節點,無論它們位於何處

所以你需要的是改變它

myNode.SelectSingleNode(".LastName")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM