<div id="columnmain">
<h3 class="toggler atStart">
....
<h3 class="toggler atStart" id="H4">
....
<h3 class="toggler atStart" id="H0001">
....
<h3 class="toggler atStart" id="H0000">
....
</div>
从xml脚本中获取第一个xpath值时,我写了以下内容:
<children>
<childrenExpression>
<expression>//div[@id='columnmain']/h3[@class='toggler atStart']/a</expression>
<href>./@href</href>
<values>
<report.url>./@href</report.url>
<report.title>./text()</report.title>
</values>
</childrenExpression>
</children>
并且用于获取其余标记:
<children>
<childrenExpression>
<expression>//div[@id='columnmain']/h3[@id='H4']/a</expression>
<href>./@href</href>
<values>
<report.url>./@href</report.url>
<report.title>./text()</report.title>
</values>
</childrenExpression>
</children>
<children>
<childrenExpression>
<expression>//div[@id='columnmain']/h3[@id='H0000']/a</expression>
<href>./@href</href>
<values>
<report.url>./@href</report.url>
<report.title>./text()</report.title>
</values>
</childrenExpression>
</children>
<children>
<childrenExpression>
<expression>//div[@id='columnmain']/h3[@id='H0001']/a</expression>
<href>./@href</href>
<values>
<report.url>./@href</report.url>
<report.title>./text()</report.title>
</values>
</childrenExpression>
</children>
但是当我使用类名获取第一个<h3>
时,还会获取所有其余标记,即在第一个案例中总共提取了4个标记。
因此,如果我想使用检查类名来获取第一个标记,并包括检查缺少id的条件。我应该在<expression>
标签中写什么。
答案 0 :(得分:3)
您可以在not(@id)
的谓词表达式中添加h3
,以使用h3
属性过滤掉id
元素:
//div[@id='columnmain']/h3[@class='toggler atStart' and not(@id)]/a
答案 1 :(得分:0)
在谓词中使用fn:empty
:
h3[ @class = 'toggler atStart' ][ empty(@id) ]
如果输入序列为空,empty(seq)
函数返回true
,在这种情况下:如果没有id
属性