ios swift xml解析

1.核心代码

  • 因为正在解析XMl元素的代理方法会调用多次,bookTitle += data,要把多次的字符串拼接起来
    // 解析XMl元素开始时
    func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) {
    
    
        print("开始 \(elementName)")
        eName = elementName
        if elementName == "book" {
    
    
            bookTitle = ""
            bookAuthor = ""
        }
    }
    // 正在解析XMl元素
    func parser(_ parser: XMLParser, foundCharacters string: String) {
    
    
        print("ing \(eName)")
        let data = string.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines)
        
        if (!data.isEmpty) {
    
    
            if eName == "title" {
    
    
                bookTitle += data
            } else if eName == "author" {
    
    
                bookAuthor += data
            }
        }
    }
    // 结束解析XMl元素
    func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    
    
        print("结束 \(elementName)")
        if elementName == "book" {
    
    
            
            let book = Book()
            book.bookTitle = bookTitle
            book.bookAuthor = bookAuthor
            
            books.append(book)
        }
    }

2.参考博客(本人亲测有效)

iOS tutorial 7:解析XML(swift)

猜你喜欢

转载自blog.csdn.net/baidu_40537062/article/details/125192868