考虑下面的XML:
<root>
<bar>
<p>Hello <italic>World</italic></p>
</bar>
<banjo><p>Hello <italic>World</italic></p></banjo>
</root>
我目前正在使用https://github.com/nicklockwood/XMLDictionary来解析XML数据。我想忽略<p>
和<italic>
标记。我怎样才能做到这一点?
NSDictionary应该看起来像这样的结构:
-root
--bar
---<p>Hello <italic>World</italic></p>
--banjo
---<p>Hello <italic>World</italic></p>
答案 0 :(得分:0)
所以快速浏览一下XMLDictionary类似乎表明它只是包装标准NSXMLParser
并使用XML元素的 all 创建一个方便的字典对象。
如果你致力于那个github代码,那么你可以在解析XML之后浏览你生成的字典,并将<p>
和<italic>
元素重新构造回父元素。但这种效率非常低,绝对不推荐,除非你的XML很短,XMLDictionary
类的好处保证了额外的工作。
您还可以深入了解XMLDictionary
代码,特别是parser:didStartElement
和parser:didEndElement
方法,并进行一些更改以忽略<p>
和<italic>
代码。这应该有效地将结构扁平化为接近示例结果的东西。
但是,如果您正在考虑在该代码中进行探索,那么您也可以直接使用NSXMLParser
,以相同的方式忽略这些标记。这将使您更加严格地控制解析,并可以减少一些不必要的对象创建,特别是如果您的XML具有相当大的规模。只需阅读NSXMLParserDelegate,甚至可以浏览XMLDictionary
代码,看看它是如何做到的。