XML分析无法找到字符-swift
在swift中解析一些XML代码时遇到问题 除了XML文件中的一个元素外,解析工作正常:XML分析无法找到字符-swift,xml,swift,parsing,Xml,Swift,Parsing,在swift中解析一些XML代码时遇到问题 除了XML文件中的一个元素外,解析工作正常: <media:thumbnail width="2048" height="1152" url="www..." /> 我已经测试了代码,它似乎成功地在第一个函数中找到了元素。但是,紧接着,它运行结束元素的第三个函数 因此,解析器似乎将元素中的任何字符识别为结束该元素解析的调用。这与预期完全一样,因为元素没有任何内容。您可以在第一个函数的attributeDict参数中找到属性及其值谢谢!太好
<media:thumbnail width="2048" height="1152" url="www..." />
我已经测试了代码,它似乎成功地在第一个函数中找到了元素。但是,紧接着,它运行结束元素的第三个函数
因此,解析器似乎将元素中的任何字符识别为结束该元素解析的调用。这与预期完全一样,因为元素没有任何内容。您可以在第一个函数的
attributeDict
参数中找到属性及其值谢谢!太好了!:)
// 1
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) {
switch elementName {
case "title": entry.title = String()
case "description": entry.desc = String()
case "media:thumbnail": entry.media = String()
case "link": entry.link = String()
case "pubDate": entry.pubDate = String()
default: break
}
currentParsedElement = elementName
}
// 2
func parser(_ parser: XMLParser, foundCharacters string: String) {
switch currentParsedElement {
case "title": entry.title = entry.title + string
case "description": entry.desc = entry.desc + string
case "media:thumbnail": entry.media = entry.media + string
case "link": entry.link = entry.link + string
case "pubDate": entry.pubDate = entry.pubDate + string
default: break
}
}
// 3
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
if elementName == "title" || elementName == "description" || elementName == "link" || elementName == "pubDate" || elementName == "media:thumbnail" {
currentParsedElement = ""
}
if elementName == "item" {
entriesArray.append(entry);
entry = Entry()
}
}
// 4
func parserDidEndDocument(_ parser: XMLParser) {
reloadTableView()
}