使用以下xml,我尝试返回true
或false
,具体取决于所有<CrucialNumber>
元素是否为空:
<Invoice>
<Details>
<LIN1>
<Quantity>1</Quantity>
<Product>Test XML</Product>
<CrucialNumber/>
</LIN1>
<LIN1>
<Quantity>1</Quantity>
<Product>Test XML</Product>
<CrucialNumber/>
</LIN1>
<LIN1>
<Quantity>1</Quantity>
<Product>Test XML</Product>
<CrucialNumber>123456</CrucialNumber>
</LIN1>
</Details>
</Invoice>
CrucialNumber
元素的数据类型为string
。
到目前为止,这些是我尝试的xpath表达式:
string-length(//CrucialNumber/*) > 0;
not(//CrucialNumber/*[text()]);
./Details/LIN1[*]/CrucialNumber[1] = "";
答案 0 :(得分:2)
not(.//CrucialNumber/node())
应该这样做,当且仅当(a)根本没有CrucialNumber
个后代元素,或者(b)所有后代CrucialNumber
元素都为空时,它才会成立。