如何获取属性的连接值?

时间:2013-10-17 04:20:05

标签: xpath

XPath表达式:

'.//div/concat(@id, " - ", @class)'

失败并显示错误:

The expression is not a legal expression.
Firefox 25.0中的

(来自用户脚本)。

为什么以及如何解决?

输入:

<div id='id1' class='class1'>
  sample
</div>

<div id='id2' class='class2'>
  sample
</div>

我想获得两个单独的字符串:

id1 - class1
id2 - class2

2 个答案:

答案 0 :(得分:2)

Firefox仅支持XPath 1.0,但您的表达式需要XPath 2.0。在XPath 1.0中没有等价物(您的表达式返回一个字符串序列,这是XPath 1.0中不存在的数据类型)。

您是从XSLT还是从Javascript调用此XPath?无论哪种方式,您都必须使用宿主语言而不是XPath进行工作。

答案 1 :(得分:1)

我认为你应该这样做:

<强> HTML

<div id='foo' class='bax'>
  sample
</div>

<强> XPATH

concat(//div/@id, " - ",//div/@class)

(//div)/concat(@id,' - ',@class)

<强>输出

foo - bax