使用具有不同节点的xpath提取文本

时间:2017-09-12 18:17:50

标签: xpath rapidminer

我目前正在尝试使用xPath和Rapidminer从网站中提取一些文本。 我想提取" 270€"来自以下代码:

<dd class="grid-item three-fifths"> 
<span class="is1-operator">+</span> 
270 € 
</dd>

我尝试了以下无法解决的问题。

//h:dd[@class='grid-item three-fifths']//text()

感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

您的Xpath返回3个文本节点:

  1. ""
  2. "+"
  3. "270€"
  4. 尝试使用以下XPath来仅提取"270€"

    //h:dd[@class='grid-item three-fifths']/text()[string-length() > 0]
    

答案 1 :(得分:0)

如先前文章所述,可以使用字符串长度过滤器,但是[string-length() > 0]仍带3个节点。 “输入”和“ +”文本内容都具有字符。

[string-length() > 1]应该可以工作。

如果您确定商品位置(在本例中为第3位)

//dd[@class='grid-item three-fifths']//text()[3]

如果您确定它始终是最后一项:

//dd[@class='grid-item three-fifths']/text()[last()]

您可以在dd跨度后获得文本节点:

//dd[@class='grid-item three-fifths']//span/following-sibling::text()

寻找欧元符号:

//dd/text()[contains(.,'€')]