我想将对子节点的搜索限制在当前节点内。例如,我有以下代码:
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/