我想知道如何使用 this (Hpple) 解析 HTML block 的内容,同时保持字符串在 HTML 文档中出现的顺序。与 XPath 表达式一起使用的包装器。环境是iOS。
例子:
<html>
<body>
<div>
Lorem ipsum <a href="...">dolor</a> sit <b>amet,</b> consectetur
</div>
</body>
</html>
假设我们要按原始顺序解析 这个问题的症结在于维持字符串的顺序。 如何使用带有上述包装器的 XPath 表达式来实现这一点? 更新: 使用上述包装器和平台(尤其是 libxml2)实现此目的的一种方法似乎是以下 XPath 表达式: 但是,生成的元素是分开的,不是作为一个字符串传递的,因此必须手动连接它们。 如果 Hpple 是兼容的 XPath 引擎,那么它必须能够评估此表达式: 此 XPath 表达式计算为第一个的字符串值(按文档顺序 根据定义,节点的 字符串值 是其所有后代文本节点的串联(按文档顺序),因此该结果正是您请求的字符串。 基于 XSLT 的验证: 这种转变: 应用于提供的 XML 文档时: 产生想要的正确结果: 关于iphone - 按原始顺序解析/组合嵌套的 HTML 元素值,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/7340030/
Lorem ipsum dolor sit amet, consectetur
和
的所有直接内容分别或同时获取很容易使用 XPath 表达式时会忽略顺序,因此可能会导致将
和
的内容放在字符串的末尾。
//div/descendant-or-self::*/text()
Best Answer-推荐答案 strong>
string(/*/body/div)
/*/body/div
元素(在您的情况下只有一个这样的元素)。<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xslutput method="text"/>
<xsl:template match="/">
<xsl:value-of select="/*/body/div"/>
</xsl:template>
</xsl:stylesheet>
<html>
<body>
<div> Lorem ipsum
<a href="...">dolor</a> sit
<b>amet,</b> consectetur
</div>
</body>
</html>
Lorem ipsum
dolor sit
amet, consectetur
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/)
Powered by Discuz! X3.4