[英]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.