2015-10-23 80 views
0

我有一個如下所示的XML,但這只是較大文件的一部分。帶條件語句的XPath表達式

例1

<EFACT_D96A_INVOIC> 
    <NADLoop1> 
    <NAD NAD09="SE" NAD08="111 11" NAD07="" NAD06="CITY" NAD01="DP"> 
     <C082 C08203="9" C08202="" C08201="7350015610088"/> 
     <C058 C05801="TESTNAME"/> 
     <C080 C08001=""/> 
     <C059 C05901="TESTSTREET 35"/> 
    </NAD> 
    </NADLoop1> 
</EFACT_D96A_INVOIC> 

例2

<EFACT_D96A_INVOIC> 
    <NADLoop1> 
    <NAD NAD09="SE" NAD08="111 11" NAD07="" NAD06="CITY" NAD01="DP"> 
     <C082 C08203="9" C08202="" C08201="7350015610088"/> 
     <C058 C05801=""/> 
     <C080 C08001="TESTNAME"/> 
     <C059 C05901="TESTSTREET 35"/> 
    </NAD> 
    </NADLoop1> 
</EFACT_D96A_INVOIC> 

我想使返回如果不爲空或C08001的任一個屬性C05801的值的XPath表達式。這可能與oneline XPath有關嗎?

回答

1

這是怎麼回事。你返回兩個值(如果它們存在)並且只取第一個值。

/EFACT_D96A_INVOIC/NADLoop1/NAD/*[@C05801!="" or @C08001!=""][1] 
+0

我不認爲你正確地閱讀我的問題。我想要取決於填寫的是C05801還是C08001的值。上述XML示例已經填寫了C05801這一事實不會讓您的建議有所幫助。 –

+0

我看,誤解了 –

+0

xPath使用1或2的版本是什麼? –