用于检查多个空子项的Xpath

时间:2013-01-21 09:28:31

标签: xpath multiple-instances

使用以下xml,我尝试返回truefalse,具体取决于所有<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] = "";

1 个答案:

答案 0 :(得分:2)

not(.//CrucialNumber/node())

应该这样做,当且仅当(a)根本没有CrucialNumber个后代元素,或者(b)所有后代CrucialNumber元素都为空时,它才会成立。