3

使用以下 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] = "";
4

1 回答 1

2
not(.//CrucialNumber/node())

应该这样做,当且仅当(a)根本没有CrucialNumber后代元素,或(b)所有后代CrucialNumber元素都是空的时,它才是真的。

于 2013-01-21T09:39:43.280 回答