为什么当 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 文档节点的子元素 /.