当前位置: 首页 > 知识库问答 >
问题:

将Xpath获取到节点的各个部分

商高谊
2023-03-14

我是XPath的新手,如果这是一个愚蠢的问题,我很抱歉。我只需要从第一个span class=“price”中提取一个没有“$”的价格。

<span class="price">
    <span class="sup">$</span>
    1
    <span class="currency-delimiter">.</span>
    <span class="sup">23</span>
</span>
<span class="price">
    <span class="sup">$</span>
    4
    <span class="currency-delimiter">.</span>
    <span class="sup">56</span>
</span>
<span class="price">
    <span class="sup">$</span>
    7
    <span class="currency-delimiter">.</span>
    <span class="sup">89</span>
</span>

我附带的Xpath是

共有1个答案

禄星腾
2023-03-14

在XPath1.0中,可以在节点上使用string函数来获取节点中的所有文本。例如字符串(//span[@class='price'][1])(如果您在节点集上使用它,也就是节点数组,它将自动只应用于第一个节点。有关更多细节,请参见官方规范。)

注意,这将包括所有空格(即'\n$\n1\n.\n23\n',其中\n表示换行符,因此您可能希望使用normalize-space函数删除前导空格,并用单个空格字符替换空格的每个实例,这将使结果更类似于$1.23

现在,为了从一开始删除$字符,我建议使用substring-after函数,因为是否使用前面提到的normalize-space函数并不重要,如下所示:substring-after(normalize-space(string(//span[@class='price'])),'$')

现在,值得注意的是,substring-after(和normalize-space)将隐式调用string函数,因此可以安全地省略该函数,只使用substring-after(normalize-space(//span[@class='price']),'$')。在本例中,我将第二个参数substring-after更改为$,这样$后面的空格也将被移除。

 类似资料:
  • 找不到我的问题的解决方案。我有要识别的节点,我的意思是-我必须获得以下情况下的节点名称: 当我使用以下语法时(FirePath,直接从浏览器) 或 然后我得到节点名称(链接组和文本img)。 在robot框架中,它不适用于关键字Get Text或Get Value。我收到消息:“InvalidSelectorException:消息:无效选择器:由于以下错误,无法找到xpath表达式名称为((//

  • 问题内容: 我感兴趣的是建议/伪代码/解释,而不是实际的实现。 我想通过xml文档,及其所有节点 检查节点是否存在属性 如果节点不具有属性, 则为Case;如果节点确实具有属性,则为Case,迭代槽属性列表,并为每个属性(包括该节点)创建xpath。 忠告?希望你会提供一些有用的信息 编辑: 这样做的原因是..我正在用jmeter编写自动化测试,因此对于每个请求,我都需要验证该请求是否确实完成了工

  • 我有以下html结构。输入的id值是动态的。例如。gwt-uid-150我正在尝试编制一个Xpath来获得标记为“逗号”的单选按钮,以便单击它。 如果我使用以下Xpath,我可以获得标签 谢谢,Riaz

  • 我有一个SVG文档,其中包含类似于以下内容的节点: 我想做的只是选择

  • 在本章中,我们将详细介绍XPath表达式,其中包括常见的节点类型,XPath定义和句柄。 序号 节点类型 描述 1 Root XML文档的根元素节点。 2 Element 元素节点。 3 Text 元素节点的文本。 4 Attribute 元素节点的属性。 5 Comment 注释