<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>
里面应该写什么标签。
最佳答案
您可以添加 not(@id)
在 h3
的谓词表达式中过滤掉h3
带有 id
的元素属性:
//div[@id='columnmain']/h3[@class='toggler atStart' and not(@id)]/a
关于html - 在 xpath 脚本中,如何验证是否缺少 HTML 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48416698/