我想知道如何解析 HTML 块的内容,同时通过使用与 XPath 表达式一起使用的(Hpple)包装器来维持字符串在 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>
,但是省略了顺序,因此可能导致将和的内容放在<a>
字符串<b>
的末尾。
如何使用带有上述包装器的 XPath 表达式来实现这一点?
更新:
使用上述包装器和平台(尤其是 libxml2)实现此目的的一种方法似乎是以下 XPath 表达式:
//div/descendant-or-self::*/text()
但是,生成的元素是分开的,而不是作为一个字符串传递的,因此必须手动将它们连接起来。