为什么当 XPath 验证器 returns 正确结果时 XmlNode.SelectNodes returns 空列表?
Why XmlNode.SelectNodes returns empty list when XPath validator returns correct result?
代码在 IronPython 中,这里是:
for systemNode in csResultXML.SelectNodes("Response/SubSystems/SubSystem"):
itemNodes = systemNode.SelectNodes('/SubSystem/Items/Item')
单循环周期中systemNode的值为:
<SubSystem ID="0">
<Items>
<Item>
<Quantity>1</Quantity>
<TotalPrice>0.0</TotalPrice>
</Item>
<Item>
<Quantity>1</Quantity>
<TotalPrice>0.0</TotalPrice>
</Item>
</Items>
</SubSystem>
代码完成后,itemNodes 是一个空列表。
为什么?
XPath 在线验证器正确返回结果。
感谢您的宝贵时间
您需要使用 systemNode.SelectNodes('Items/Item')
,因为您想要 select 上下文节点(您的 systemNode
变量)的 Items
子元素,而不是 Items
文档节点的子元素 /
.
代码在 IronPython 中,这里是:
for systemNode in csResultXML.SelectNodes("Response/SubSystems/SubSystem"):
itemNodes = systemNode.SelectNodes('/SubSystem/Items/Item')
单循环周期中systemNode的值为:
<SubSystem ID="0">
<Items>
<Item>
<Quantity>1</Quantity>
<TotalPrice>0.0</TotalPrice>
</Item>
<Item>
<Quantity>1</Quantity>
<TotalPrice>0.0</TotalPrice>
</Item>
</Items>
</SubSystem>
代码完成后,itemNodes 是一个空列表。
为什么? XPath 在线验证器正确返回结果。
感谢您的宝贵时间
您需要使用 systemNode.SelectNodes('Items/Item')
,因为您想要 select 上下文节点(您的 systemNode
变量)的 Items
子元素,而不是 Items
文档节点的子元素 /
.