iphoneSDK和NSXMLParser问题

时间:2010-10-18 05:23:50

标签: iphone xml sdk nsxmlparser

所以有一个XML文件,它完全解析,直到我得到一个内部有奇怪标签的元素。 xml文件看起来有点像这样。

<xml>
   <badtag><![CDATA[ This is the text that i want ]]> </badtag>
</xml>

出于某种原因,当它与“那个*”标签接触时,应用程序就会变成干线。下一个视图加载但是之后它不执行任何正确的操作。基本上它加载一个空白表视图,因为它从不调用“cellForRowAtIndexPath”(或任何其他必要的表方法)。

我绝对没有解释这个。如果我删除该标记,我可以让它加载解析XML文件。

他们无论如何我可以搜索整个XML文件并删除所有“&lt; [CDATA [”和“]]&gt;”在运行时。

巨大的编辑:

我现在才注意到我输入

&LT; ! C D A T A(这里的文字消失了)]]&gt;
在这里它还会阻止所有文本。

2 个答案:

答案 0 :(得分:0)

'&LT;' '&安培;'和'&gt;'是HTML保留字符以及其他一些字符,它们需要进行转义才能正确传递,否则会产生错误。有效的XML应该已经转义了这些字符,因此应该在服务器端修复它。

如果您正在使用NSXMLParser,并且尝试通过它运行无效输入,就像上面的内容一样,它将产生错误并停止传递XML的内容。

如果您无法访问源XML,请发表评论,我会看看是否可以找到人们修复它的方法。

答案 1 :(得分:0)

- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock
{
    NSString *someString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
}