XPath选择不带“ isNull”的值

时间:2018-08-31 09:30:25

标签: xml xpath

<?xml version="1.0" encoding="UTF-8"?>
   <rows>
      <row>
         <c n="ColorName">Cyan</c>
         <c isNull="1" n="ColorType"/>
         <c isNull="1" n="ColorBook"/>
         <c isNull="1" n="SpotFunction"/>
         <c n="Angle">45.0</c>
      </row>
      <row>
         <c n="ColorName">HG8-Black</c>
         <c isNull="1" n="ColorType"/>
         <c n="ColorBook">designer</c>
         <c n="SpotFunction">RY</c>
         <c n="Angle">45.0</c>
      </row>
   </rows>

我具有这种结构,我需要使用此XPath获取一些值:

/rows/row/c[3]/text()

我的问题是,有时我具有此isNull="1"属性,但由于没有值而收到错误消息。没有值时可以忽略该行吗?

2 个答案:

答案 0 :(得分:2)

尝试以下操作,避免将c个具有isNull属性的节点与之匹配:

/rows/row/c[3][not(@isNull)]/text()

答案 1 :(得分:0)

使用此XPath表达式:

/rows/row/c[3][@isNull]/text()