我有以下XML:
<bookstore xmlns="urn:hl7-org:v3" xmlns:voc="urn:hl7-org:v3/voc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 PORT_MT020001.xsd" type="Observation" classCode="OBS" moodCode="EVN">
<book>
<title lang="en">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="en">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
[当我尝试在上述xml上使用XMLDocument.SelectNodes()时:
XmlNodeList xmlNodelist= doc.SelectNodes("//book");
Console.WriteLine(xmlNodelist.Count);
它给我结果:
0
当我像这样将根节点中的xmlns属性值更改为空时:
<bookstore xmlns="" ...........>
它给了我适当的结果:
2
为什么会发生这种情况?根节点中的xmlns属性值对我来说至关重要。这个问题有解决方案吗?
要忽略名称空间,请使用local-name()
。
//*[local-name()='book']