C# XPath字符串以选择具有特定值c的特定节点#
我想选择一个节点,C# XPath字符串以选择具有特定值c的特定节点#,c#,xml,xpath,C#,Xml,Xpath,我想选择一个节点,cat的内部文本是使用XPath的“PG” <?xml version="1.0" encoding="utf-8"?> <Students> <student> <name>Talha</name> <cat>PG</cat> </student> <student> <name>irf
cat
的内部文本是使用XPath的“PG”
<?xml version="1.0" encoding="utf-8"?>
<Students>
<student>
<name>Talha</name>
<cat>PG</cat>
</student>
<student>
<name>irfan</name>
<cat>UG</cat>
</student>
<student>
<name>Ali</name>
<cat>PG</cat>
</student>
<student>
<name>Umer</name>
<cat>UG</cat>
</student>
</Students>
要选择子元素
cat
具有值“PG”的所有student
节点,请使用此XPath表达式
/Students/student[cat='PG']
只得到第一次使用
/Students/student[cat='PG'][1]
因此,在C的语法中,使用
调用
local-name()
有什么用?这很可疑。除非您的实际XML具有名称空间,否则您不需要它,即使这样,您也不真正需要它。所以您的实际XML是否有名称空间?如果是,则显示实际的XML。如果没有,请去掉local-name()
。选择SingleNode将只选择一个节点。不需要[1],对吗?@ThomasWeller:是的。我只是为了强调这是两个节点中的第一个被选中。
/Students/student[cat='PG'][1]
XmlElement xmldoc = (XmlElement)doc.DocumentElement.SelectSingleNode("/Students/student[cat='PG'][1]");