我有一个XML文档,我想从XPath中提取一些数据。这是我感兴趣的xml块:

<SalesPrice ElementId="719304324">
    <CountryCodeA2>DE</CountryCodeA2>
    <CurrencyISOCode>EUR</CurrencyISOCode>
    <ValidFrom>2016-10-21T09:39:16.000+02:00</ValidFrom>
    <CancelDate>2016-10-25T09:39:16.000+02:00</CancelDate>
    <Amount>3595</Amount>
</SalesPrice>


我试图根据它们的<SalesPrice><ValidFrom>值获取所有有效的<CancelDate>节点。但是,问题在于,并非所有<SalesPrice>节点都具有<CancelDate>标记,并且我的以下查询无法正常工作:

/SalesPrice[ValidFrom > 2016-10-23T11:15:50+00:00 and CancelDate < 2016-10-23T11:15:50+00:00]


那么,哪怕缺少CancelDate来获取所有SalesPrice的正确查询是什么?

最佳答案

假设以下XML:

<root>
  <a>
    <b>1</b>
  </a>
  <a/>
</root>


以下XPath表达式将选择两个a节点:

//a[not(b) or b = 1]

08-25 17:15