在swift中解析html的最佳做法是什么?
发布时间:2020-12-14 05:53:20 所属栏目:百科 来源:网络整理
导读:我是一个Swift新手我需要像Swift iOS项目中的Python的BeautifulSoup这样的东西。确切地说,我需要得到 a以“.txt”结尾。我应该采取什么步骤? 有几个很好的HTML解析库,使用Swift和Objective-C,如下所示: hpple NDHpple Kanna( old Swift-HTML-Parser) Fu
我是一个Swift新手我需要像Swift iOS项目中的Python的BeautifulSoup这样的东西。确切地说,我需要得到< a>以“.txt”结尾。我应该采取什么步骤?
有几个很好的HTML解析库,使用Swift和Objective-C,如下所示:
> hpple 看看下面的例子,在上面发布的四个图书馆里,主要使用XPath 2.0进行解析:
let data = NSData(contentsOfFile: path) let doc = TFHpple(HTMLData: data) if let elements = doc.searchWithXPathQuery("//a/@href[ends-with(.,'.txt')]") as? [TFHppleElement] { for element in elements { println(element.content) } }
let data = NSData(contentsOfFile: path)! let html = NSString(data: data,encoding: NSUTF8StringEncoding)! let doc = NDHpple(HTMLData: html) if let elements = doc.searchWithXPathQuery("//a/@href[ends-with(.,'.txt')]") { for element in elements { println(element.children?.first?.content) } }
let html = "<html><head></head><body><ul><li><input type='image' name='input1' value='string1value' class='abc' /></li><li><input type='image' name='input2' value='string2value' class='def' /></li></ul><span class='spantext'><b>Hello World 1</b></span><span class='spantext'><b>Hello World 2</b></span><a href='example.com'>example(English)</a><a href='example.co.jp'>example(JP)</a></body>" if let doc = Kanna.HTML(html: html,encoding: NSUTF8StringEncoding) { var bodyNode = doc.body if let inputNodes = bodyNode?.xpath("//a/@href[ends-with(.,'.txt')]") { for node in inputNodes { println(node.contents) } } }
let html = "<html><head></head><body><ul><li><input type='image' name='input1' value='string1value' class='abc' /></li><li><input type='image' name='input2' value='string2value' class='def' /></li></ul><span class='spantext'><b>Hello World 1</b></span><span class='spantext'><b>Hello World 2</b></span><a href='example.com'>example(English)</a><a href='example.co.jp'>example(JP)</a></body>" do { // if encoding is omitted,it defaults to NSUTF8StringEncoding let doc = try HTMLDocument(string: html,encoding: NSUTF8StringEncoding) // XPath queries for anchor in doc.xpath("//a/@href[ends-with(.,'.txt')]") { print(anchor.stringValue) } } catch let error { print(error) } 结束功能是Xpath 2.0的一部分。 我希望这能帮助你。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- PostgreSQL pg_hba.conf 文件解析以及忘记密码的处理方法
- c# – 通过使用asp net identity 2.1发送重置帐户链接来重置
- Oracle Scheduler中的repeat_interval
- .net – 检查WMI ManagementObject查询是否为Nothing而不是
- ruby – 将任意选项传递给rabl partial / extend
- 华为 Hybrid-vlan配置,将接口批量加入vlan,配置详解
- c – 如何划分boost :: optional?
- c# – 如果日期时间是另一个日期时间的24小时,则返回
- c# – VSTO Word激活功能区选项卡
- 在C#正则表达式中,为什么初始匹配会显示在组中?