2014-09-30 69 views
0

考虑下面的XML解析不特定的标记:不要使用的NSXMLParser

<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

所以在那个XMLDictionary类一瞥,似乎表明它只是包装标准NSXMLParser并创建与所有的一个方便的字典对象XML元素。

如果您正在致力于这一github上的代码,那么你可能会通过你得到的字典之后解析XML和重组<p><italic>元素回父元素。但是这样效率很低,除非你有非常短的XML,并且XMLDictionary类的好处保证了额外的工作,否则绝对不推荐。

你也可以挖掘到XMLDictionary代码,特别是parser:didStartElementparser:didEndElement方法,并做一些修改忽略<p><italic>标签。这应该有效地将结构扁平化,以接近您的示例结果。

但是,如果你正在考虑在代码中寻找,你可能会直接使用NSXMLParser,忽略这些标签的方式相同。这样可以更好地控制解析,并可以减少一些不必要的对象创建,特别是如果您的XML具有相当大的尺寸。请阅读NSXMLParserDelegate,甚至通过XMLDictionary代码,看看它如何做你喜欢的事情。