如何使用Kanna

时间:2017-01-28 15:30:03

标签: swift html-parsing

鉴于以下表单的HTML(在我无法控制的情况下生成),如何使用Kanna提取文本'我想要的'

<div class="entry-meta">
    \n\t\t\t<p>
        <span class="tags-links">
            <a href="http://example.com" rel="tag">This is not</a>
        </span>
    </p>
    What I wanted\t\t
</div>\n

\n\t s在原始来源中,因此仅为了完整性而包含在此处 - 我可以使用.trimmingCharacters(in:)删除它们

鉴于我有一个XMLElement代表div节点(Kanna中的节点为XMLElement,无论源数据类型如何),我都试过各种方法来提取text &#39;我想要的&#39; ,但.text.content都返回&#39;这不是我想要的&#39; < / em>的

我之前使用的是Hpple,但它并不像Swifty那样需要更多的工作才能使用。给定对同一节点的引用,Hpple会通过(node.children.last as! TFHppleElement).content生成预期的文本,但是查看Kanna的来源,看起来.content.text都返回{{1}的结果1}}

我还缺少另一种方法,或者这是Kanna的缺点吗?

1 个答案:

答案 0 :(得分:1)

Kanna允许您使用XPath表达式选择节点,并且您想要的节点是该div元素中的第二个文本节点子节点,因此您应该可以使用此节点:

divElement.xpath("text()[2]")