首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift 2解析HTML并查找特定节点

Swift 2解析HTML并查找特定节点
EN

Stack Overflow用户
提问于 2015-12-28 18:06:31
回答 2查看 427关注 0票数 0

使用Kanna导入,我目前正在使用以下代码解析html:

代码语言:javascript
运行
复制
if let doc = Kanna.HTML(url: NSURL(string: "https://en.wikipedia.org/wiki/Data")!, encoding: NSUTF8StringEncoding) {

        // Search for nodes by XPath
        for link in doc.xpath("/html/head...") {
            primaryDisplay.text!=link.text!
            print(link.text)
        }
    }
}

我想知道如何识别html页面中的特定“节点”(不确定这是否是正确的术语),以解析我想要的特定数据……

这是一张我想知道的图片。我想..。

EN

回答 2

Stack Overflow用户

发布于 2016-12-30 02:52:17

做你所发现的事情的一种简单方法是使用SwiftSoup

试试这个:

代码语言:javascript
运行
复制
do{
            let html = "<!DOCTYPE html>" +
                "<html>" +
                "<head>" +
                "<title>Some webpage</title>" +
                "</head>" +
                "<body>" +
                "<p class='normal'>This is the first paragraph.</p>" +
                "<p class='special'><b>this is in bold</b></p>" +
                "</body>" +
            "</html>";

            let doc: Document = try SwiftSoup.parse(html)
            let els: Elements = try doc.getElementsByClass("special")
            let special: Element? = els.first()//get first element
            print(try special?.text())//"this is in bold"
            print(special?.tagName())//"p"
            print(special?.child(0).tag().getName())//"b"

        }catch Exception.Error(let type, let message)
        {
            print("")
        }catch{
            print("")
        }
票数 0
EN

Stack Overflow用户

发布于 2018-07-28 02:43:11

您还应该看看xpath/xquery -它是一种专门用于遍历和查询XML的语言,这使得它适用于XHTML和HTML。XHTML基本上是格式良好的HTML。

假设您的机器上安装了xpath/xquery解析器,您可以...

  • 获取文档中所有p个元素的列表://p
  • 获取具有特殊类的所有p个元素的列表: //p@class = 'special'

XQuery增加了使用类似SQL的语法来查询文档的功能。

使用此解析器或任何其他用于html的解析器的困难在于,HTML通常不是格式良好的。这意味着并不是每个开始标记都有结束标记。这使得任何类型的解析都有些粗略,因为解析器可能无法弄清楚HTML所隐含的层次结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34491431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档