XML中的Xpath由于xml名称空间字段而无法使用

问题描述 投票:0回答:1

我有以下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属性值对我来说至关重要。这个问题有解决方案吗?

c# xml xpath xml-parsing hl7-v3
1个回答
0
投票

要忽略名称空间,请使用local-name()

//*[local-name()='book']
© www.soinside.com 2019 - 2024. All rights reserved.