2011-04-25 124 views
1

我有一个html文件,我需要找到<object>标记的出现次数。在Java中,我使用XPathExpression //:object[contains(@type,"video/") or contains(@type,"audio/")]来查找<object>标记的出现次数。它正在检测<object>标签,但我希望我的文件中存在对象标签的数量。xpath表达式在html文件中查找元素的所有occerence

result = (Boolean) expression.evaluate(inputSource, XPathConstants.BOOLEAN); 

其中inputSource包含我的html文件。它返回一个布尔值,当我尝试使用 xpathValue = (Double) expression.evaluate(inputSource, XPathConstants.NUMBER);作为NaN得到结果时也是这样。

解决方案是什么?

+0

顺便说一句,你显示的表达式是无效的XPath。在元素名称测试中,如果没有名称空间前缀,则不能冒冒号。 – LarsH 2011-11-15 17:09:30

回答

2

我在我的Java和XPath有点模糊,但如果你评估

expression.evaluate(inputSource, XPathConstants.NODELIST)

应该会得到一个节点列表的所有节点的匹配你的查询,你可以得到的长度的名单。

+3

或者,在调用XPath“count(...)”函数的过程中包装表达式,并将结果评估为double。 – 2011-04-25 14:26:34

+0

@Michael好的一点,我很少使用Java XPath,所以我很高兴你能把这个功能提起来,我不知道它存在。 – 2011-04-25 14:47:16

+0

@迈克尔:非常感谢你..这就是我一直在寻找.. :) – su03 2011-04-26 04:17:35

相关问题