解析html ios,ios-快速解析html的最佳实践是什么?

有一些不错的HTML解析库,使用ends-with和Objective-C,如下所示:

马力

NDHpple

卡纳(旧的Swift-HTML-Parser)

F U字

迅捷汤

J i

看一下上面发布的四个库中的以下示例,这些示例主要是使用XPath 2.0进行解析的:

hpple:

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)

}

}

NDHpple:

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)

}

}

卡纳(Xpath和CSS选择器):

let html = "

Hello World 1 Hello World 2 example(English) example(JP)"

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)

}

}

}

Fuzi(Xpath和CSS选择器):

let html = "

Hello World 1 Hello World 2 example(English) example(JP)"

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)

}

ends-with函数是Xpath 2.0的一部分。

SwiftSoup(CSS选择器):

do{

let doc: Document = try SwiftSoup.parse("...")

let links: Elements = try doc.select("a[href]") // a with href

let pngs: Elements = try doc.select("img[src$=.png]")

// img with src ending .png

let masthead: Element? = try doc.select("div.masthead").first()

// div with class=masthead

let resultLinks: Elements? = try doc.select("h3.r > a") // direct a after h3

} catch Exception.Error(let type, let message){

print(message)

} catch {

print("error")

}

Ji(XPath):

let jiDoc = Ji(htmlURL: URL(string: "http://www.apple.com/support")!)

let titleNode = jiDoc?.xPath("//head/title")?.first

print("title: \(titleNode?.content)") // title: Optional("Official Apple Support")

我希望这可以帮助你。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Swift全解析-新式iOS实战开发》是一本电子书,主要针对Swift语言和iOS开发进行详细的解析和讲解。该书致力于帮助读者掌握Swift语言的特性和iOS开发的基础知识,以及如何应用它们进行实际项目的开发。 该书的内容分为多个章节,从Swift的基础语法开始,逐步介绍了Swift的各种高级特性和常用框架。读者可以学习如何使用Swift语言来编写iOS应用程序,并了解如何使用Core Data、UIKit和其他重要的框架来创建用户界面、处理数据、进行网络通信等等。 该书的特点是详细而全面,通过大量的示例代码和实际项目案例,帮助读者更好地理解和应用所学知识。同时,书中还包括了一些实用的技巧和最佳实践,帮助读者提高代码质量和开发效率。 此外,该书还提供了一些额外的学习资源和链接,以帮助读者深入了解和学习更多的iOS开发知识。读者可以通过这些资源进一步扩展和巩固所学的内容。 总而言之,《Swift全解析-新式iOS实战开发》是一本适合有一定编程基础,想要学习Swift语言和iOS开发的人士阅读的电子书。通过系统而全面的内容,读者可以获得丰富的知识和实践经验,为自己的iOS开发之路打下坚实的基础。 ### 回答2: 《Swift全解析:新式iOS实战开发》是一本电子书,旨在帮助读者全面了解Swift编程语言以及在iOS开发中的应用。这本书采用了全新的教学方法和实战项目,为读者提供了一种系统学习Swift和实践iOS开发的途径。 首先,本书对Swift编程语言进行了全面详尽的介绍。无论是从基础语法到高级特性,还是从常用API到面向对象设计模式,本书都进行了深入的讲解和示范。读者通过系统地学习Swift语言,可以快速上手iOS开发,并且能够灵活运用各种语言特性提高开发效率。 其次,本书以实战项目为主线,通过搭建一个完整的iOS应用来帮助读者加深对Swift开发的理解。每个实战项目都紧跟着一系列的教学步骤和示例代码,读者可以跟随着书本进行实践,逐步掌握iOS开发的过程和技巧。这种以实践为基础的学习方式,能够帮助读者更好地理解和运用所学内容。 此外,本书还介绍了一些实用的开发工具和技巧,比如使用Xcode进行调试和测试、集成第三方框架和库、发布应用到App Store等。这些内容能够帮助读者更好地提升开发效率和应用质量,从而更好地应对实际的开发需求。 总的来说,《Swift全解析:新式iOS实战开发》是一本详尽、实用、有趣的电子书,适合那些想要系统学习Swift语言和iOS开发的读者。通过阅读本书,读者能够从零开始学习,掌握iOS开发的核心知识和实践技巧,为日后的应用开发打下坚实的基础。 ### 回答3: 《Swift全解析新式iOS实战开发》是一本关于Swift语言和iOS实战开发的电子书。这本书通过详细地解析Swift语言的各种特性和语法,并结合实战项目的开发经验,向读者介绍了如何使用Swift语言进行iOS开发。 这本电子书的内容非常丰富,包括Swift语言的基础知识、面向对象编程、函数式编程、UI设计、网络请求、数据存储等多个方面。每一章节都以实战项目为背景,结合代码示例和详细的解释,帮助读者理解和掌握相关知识。 通过阅读这本书,读者可以系统地学习和掌握Swift语言的特性和用法,了解iOS开发的各个方面,并学会如何将Swift语言应用于实际项目开发中。无论是初学者还是有一定开发经验的人员,都可以从书中获取到丰富的知识和实战经验。 此外,这本电子书还具有很强的实践性和针对性。书中提供了大量实战项目的案例,通过跟随案例的步骤进行开发,读者不仅可以学习相关的知识,还可以通过实际动手实现项目,加深对知识的理解和运用能力。 总结来说,《Swift全解析新式iOS实战开发》是一本对于想要学习iOS开发并使用Swift语言的读者来说非常有价值的电子书。它全面介绍了Swift语言和iOS开发的各个方面,并提供了丰富的实战项目案例,帮助读者快速入门并掌握相关技能。对于想要系统学习和应用Swift语言的读者来说,这本电子书绝对是一本不可缺少的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值