0

玩弄 SWXMLHash,我试图提取一个元素,然后获取它的信息。我的 xml 文件很大,我想将解析拆分为较小的函数。

例如,这是来自 GitHub 页面:

let xml = """
<root>
   <catalog>
       <book><author>Bob</author></book>
       <book><author>John</author></book>
       <book><author>Mark</author></book>
   </catalog>
</root>
"""

self.parsedXML = SWXMLHash.parse(xml)
        
let name1 = parsedXML?["root"]["catalog"]["book"][0]["author"].element?.text
let name2 = parsedXML?["root"]["catalog"]["book"][1]["author"].element?.text
let name3 = parsedXML?["root"]["catalog"]["book"][2]["author"].element?.text

这正确地导致“鲍勃,约翰,马克”

但是如果我先拉出目录,所有的名字都是 nil:

let catalog = parsedXML?["root"]["catalog"]
        
let name1 = catalog?["book"][0]["author"].element?.text // nil
let name2 = catalog?["book"][1]["author"].element?.text // nil
let name3 = catalog?["book"][2]["author"].element?.text // nil

这是为什么,我错过了什么?

4

0 回答 0