gpt4 book ai didi

ios - 在 Swift 中解析 XML 文件

转载 作者:可可西里 更新时间:2023-11-01 00:53:48 27 4
gpt4 key购买 nike

我正在尝试使用 NSXMLParser 解析 XML 文件。最初一切似乎都运行良好,但内容结果似乎被截断并得到了一些奇怪的结果。

func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!, attributes attributeDict: [NSObject : AnyObject]!) {
if elementName == "title" {
foundTitle = true
}

if elementName == "description" {
foundDescription = true
}
}

func parser(parser: NSXMLParser!, foundCharacters string: String!) {
if (foundItem) {
if foundTitle {
println("Title: \(string)")
foundTitle = false
}
else if foundDescription {
println("Description: \(string)")
foundDescription = false
}
}
}

我正在测试的 RSS 提要是技术史上的今天 (http://feedpress.me/ThisDayInTechHistory),现在第一条新闻如下:

Title: IBM’s First Desktop Computer
Description: IBM introduces their System/23 Datamaster desktop computer...

Bur 对于我的测试结果,这是我得到的:

Title: IBM
Description: ’s First Desktop Computer
Description: July 28, 1981 IBM introduces their System/23 Datamaster desktop computer...

请注意,标题在第一个 ' 之后被截断并成为描述!这是 NSXMLParser 中的错误吗?或者我做错了什么?谢谢!

最佳答案

你猜对了! NSXMLParser 假设字符串已经被转义,并且会遇到包括 > 在内的字符问题。 , < , ' , & , 和 \ .

要对字符串进行全局替换,您可以使用 NSString方法 stringByReplacingOccurrencesOfString ,像这样:

let xml = "<desciption>Here's a malformed XML string. Ain't it ugly?</description>"
xml.stringByReplacingOccurrencesOfString("'", withString: "&quot;")

哪个返回:

"<desciption>Here&quot;s a malformed XML string. Ain&quot;t it ugly?</description>"

关于ios - 在 Swift 中解析 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25007440/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com