2

例如,我的 XML 代码是:

<part> 
      <name>qwe</name>
      <ir>
          <d>yes</d>
          <scalar>
              <left>31</left>
              <right>0</right>
          </scalar>
      </ir>
</part>
<part> 
      <name>qaz</name>
      <ir>
          <d>yes</d>
          <scalar>
              <left>1</left>
              <right>0</right>
          </scalar>
      </ir>
</part>
<part>
      <name>asd</name>
      <ir>
          <d>yes</d>
          <drive>
              <default>1</default>
          </drive>
      </ir>
</part>
<part> 
      <name>zxc</name>
      <ir>
          <d>no</d>
          <scalar>
              <left>3</left>
              <right>0</right>
          </scalar>
          <drive>
              <default>0</default>
          </drive>
      </ir>
</part>

我想提取所有没有节点默认值的名称,即输出应该qwe, qaz在这个例子中。您必须检查默认值的值,如果它是 0 或 1,并且打印asd具有默认值 0 并且zzxc具有默认值 1。如果它不存在,则打印没有默认值qwe并且qaz没有默认值。

4

1 回答 1

2

如果默认始终是 in ir/drive,则可以使用以下 XPath 表达式:

//part[not(ir/drive/default)]/name/text()
于 2012-10-25T08:43:13.563 回答