Swift 如何使用Kanna访问HTML元素的文本

Swift 如何使用Kanna访问HTML元素的文本,swift,html-parsing,Swift,Html Parsing,给定以下表单的HTML(在我的控制之外生成),我将如何使用提取文本“What I want” \n\t\t\t 我想要的\t\t \n (原始源代码中有\ns和\ts,因此此处仅为完整起见才包含它们-我可以使用.trimmingCharacters(in:)删除它们) 考虑到我有一个表示div节点的xmlement(节点是Kanna中的xmlements,不管源数据类型如何),我尝试了各种方法来提取文本“我想要的”,但.text和.content都返回“这不是我想要的” 我以前使用过Hpp

给定以下表单的HTML(在我的控制之外生成),我将如何使用提取文本“What I want”


\n\t\t\t

我想要的\t\t \n
(原始源代码中有
\n
s和
\t
s,因此此处仅为完整起见才包含它们-我可以使用
.trimmingCharacters(in:)
删除它们)

考虑到我有一个表示
div
节点的
xmlement
(节点是Kanna中的
xmlement
s,不管源数据类型如何),我尝试了各种方法来提取文本“我想要的”,但
.text
.content
都返回“这不是我想要的”

我以前使用过Hpple,但它没有那么快,需要做很多工作才能使用。给定对同一节点的引用,Hpple将通过
(node.children.last as!TFHppleElement).content
生成预期的文本,但查看Kanna的源代码,它看起来像
。content
。text
都返回
libxmlGetNodeContent(nodePtr)


是否还有我缺少的另一种方法,或者这是Kanna中的一个缺点?

Kanna允许您使用XPath表达式选择节点,并且您想要的节点是该
div
元素中的第二个文本节点子节点,因此您应该能够通过以下方法获得它:

divElement.xpath("text()[2]")
text()!但是它不想要/不需要前导的
/
。很高兴它有帮助(并编辑了答案以删除前导斜杠)
divElement.xpath("text()[2]")