2016-11-04 12 views
1

我有一個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是正確的查詢失蹤?

回答

2

假設下面的XML:

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

以下XPath表達式將選擇兩個a節點:

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

謝謝!這正是我所期待的。當我嘗試比較日期時,我現在遇到了另一個問題...您是否知道在XPath查詢中比較日期的最佳方法是什麼? –

+0

@ArminSam哪個版本的XPath? (另見http://stackoverflow.com/questions/4347320/xpath-dates-comparison。) – Markus

+0

XPath版本1.0 –