具有可选条件的XPath查询(仅在标记存在时适用条件)
问题描述:
我有一个XML文档,我想从XPath中提取一些数据。这里是我感兴趣的XML块:具有可选条件的XPath查询(仅在标记存在时适用条件)
<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]
那么,什么是让所有SalesPrices即使他们CancelDate是正确的查询失踪?
答
假设下面的XML:
<root>
<a>
<b>1</b>
</a>
<a/>
</root>
以下XPath表达式将选择两个a
节点:
//a[not(b) or b = 1]
谢谢!这正是我所期待的。当我尝试比较日期时,我现在遇到了另一个问题...您是否知道在XPath查询中比较日期的最佳方法是什么? –
@ArminSam哪个版本的XPath? (另见http://stackoverflow.com/questions/4347320/xpath-dates-comparison。) – Markus
XPath版本1.0 –