2

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
4

2 回答 2

2

我认为你应该这样做:

HTML

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

路径

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

或者

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

输出

foo - bax
于 2013-10-17T05:23:47.047 回答
2

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

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

于 2013-10-17T07:48:58.733 回答