html - 在 xpath 脚本中,如何验证是否缺少 HTML 属性?

标签 html xml xpath

<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/

相关文章:

xml - VBScript从XML节点分配变量

xpath - 如何在 Silktest XPaths 中转义星号?

html - 设置我的照片库的宽度

html - 在新选项卡中打开链接会使其焦点状态保持事件状态

XML 数据类型转换

xml - 使用 Rust 和 Serde 反序列化 XML 时遇到困难,其中文档具有可选子元素

selenium - 如何在Robot Framework中基于元素的文本编写xpath?

javascript - 使用 emscripten 将 c++ 代码编译为 javascript 以计算两个数字的总和。练习

javascript - 删除触摸设备 css 上的悬停效果

javascript - SAPUI5 元数据.xml : binding two entities