<test>
<child id="13680621263370126043"/>
<child id="13680621263370124329"/>
</test>
代码:
doc.SelectNodes(@"/test/child[@Id=13680621263370126043]");
返回的列表中有两个子节点,是什么给出的?
答案 0 :(得分:2)
更改
/test/child[@Id=13680621263370126043]
到
/test/child[@id='13680621263370126043']
,因为
XPath uses double-precision 64-bit format IEEE 754 value代表数字15-17 signicant decimal digits。此处的@id
属性有20位数字,因此必须作为字符串进行测试,而不是数字。
答案 1 :(得分:2)
你有两个问题:
id
而不是Id
。''
所以:
var doc = new XmlDocument();
doc.Load("data.xml");
var result = doc.SelectNodes(@"//test/child[@id='13680621263370126043']");
// result contains 1 item