尝试使用NSXMLParser解析格式不正确的XML

时间:2011-03-24 09:10:58

标签: objective-c xml ios nsxmlparser

我正在使用NSXMLParser解析XML数据,现在我注意到,Elements可以包含所有字符,包括例如&。由于解析器在遇到此角色时发出错误,因此我替换了此角色的每个Occurence。 现在我想确保处理可能导致错误的每个字符。 它们是什么?您认为我应该如何处理这些角色? 提前谢谢!

2 个答案:

答案 0 :(得分:2)

要回答一半问题,XML有5个特殊字符,您可能想要转义:

< - 替换为& lt;

> - 替换为& gt;

&安培; - 替换为& amp;

' - 替换为&的

“ - 替换为& quot;

现在,对于另一半 - 如何在不替换所有标签等的情况下找到并替换它们......不容易,但我会查看正则表达式和NSRegularExpression:http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

请记住,根据您的使用情况,也可以转义标签上参数的值; < tag parameter =“with& quot; quotes& quot;” />

答案 1 :(得分:0)

您应该对这些字符进行编码,例如&变为&或“变为"

当它通过解析器时它应该出来了。您的另一个选择是使用不同的XML解析器,如TBXML,它不进行格式检查。