【发布时间】:2011-11-12 11:49:21
【问题描述】:
我想知道如何使用与 XPath 表达式一起使用的 this (Hpple) 包装器来解析 HTML 块的内容,同时保持字符串在 HTML 文档中出现的顺序。环境是iOS。
例子:
<html>
<body>
<div>
Lorem ipsum <a href="...">dolor</a> sit <b>amet,</b> consectetur
</div>
</body>
</html>
假设我们要按原始顺序解析<div>标签内的所有字符串,以便得到这个结果:
Lorem ipsum dolor sit amet, consectetur
这个问题的症结在于维持字符串的顺序。使用 XPath 表达式很容易获得 <div> 以及 <a> 和 <b> 的所有直接内容,但忽略了顺序,因此可能会导致放入 @987654328 的内容@ 和 <b> 在字符串的末尾。
如何使用带有上述包装器的 XPath 表达式来实现这一点?
更新:
使用上述包装器和平台(尤其是 libxml2)实现此目的的一种方法似乎是以下 XPath 表达式:
//div/descendant-or-self::*/text()
但是,生成的元素是分开的,而不是作为一个字符串传递的,因此必须手动连接它们。
【问题讨论】:
-
好问题,+1。请参阅我对一个 XPath 1.0 表达式的回答,该表达式可以准确生成所需的文本。
标签: iphone ios xpath html-parsing hpple