我有一个示例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 WANTED TEXT
但是如何在没有不需要的文本的情况下在Android的XPath中选择它?
答案 0 :(得分:1)
我不确定Android的行为是否符合预期。但是,请尝试这两个语句,看看它们是否会返回所需的结果。
获取第一个不是元素的节点:
//div[@id='myid']//p/node()[not(self::*)]
获取第一个节点是文本节点:
//div[@id='myid']//p/node()[self::text()]
(请注意,我无法在Android上测试这些内容,因此我无法确定它们会返回什么内容。)