Android中的Xpath表达式,用于具有两个子文本节点的节点

时间:2011-09-20 12:21:52

标签: android xpath htmlcleaner

我有一个示例XML(Android平台),我想知道获取文本节点的节点值的最简单,最有效的方法。

<div id="myid">
   <img src="..." width="1" height="2" alt="Text" />
   <p><strong>Unwanted text</strong>WANTED TEXT</p>
</div>

我可以使用XPath 2.0轻松搞定:

//div[@id='myid']//p/text() => WANTED TEXT

但在Android中我得到了......

//div[@id='myid']//p/text() => Unwanted text&nbsp;WANTED TEXT

但是如何在没有不需要的文本的情况下在Android的XPath中选择它?

1 个答案:

答案 0 :(得分:1)

我不确定Android的行为是否符合预期。但是,请尝试这两个语句,看看它们是否会返回所需的结果。

获取第一个不是元素的节点:

//div[@id='myid']//p/node()[not(self::*)]

获取第一个节点是文本节点:

//div[@id='myid']//p/node()[self::text()]

(请注意,我无法在Android上测试这些内容,因此我无法确定它们会返回什么内容。)