Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iphoneSDK和NSXMLParser问题_Iphone_Xml_Sdk_Nsxmlparser - Fatal编程技术网

iphoneSDK和NSXMLParser问题

iphoneSDK和NSXMLParser问题,iphone,xml,sdk,nsxmlparser,Iphone,Xml,Sdk,Nsxmlparser,所以有一个XML文件,它解析得非常好,直到我找到一个元素,其中有一个奇怪的标记。 xml文件看起来有点像这样 <xml> <badtag><![CDATA[ This is the text that i want ]]> </badtag> </xml> 由于某种原因,当它接触到“that*”标签时,应用程序会自动启动。下一个视图将加载,但在此之后它不会执行任何正确的操作。基本上,它加载一个空白表视图,因为它从不调用“Ce

所以有一个XML文件,它解析得非常好,直到我找到一个元素,其中有一个奇怪的标记。 xml文件看起来有点像这样

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

由于某种原因,当它接触到“that*”标签时,应用程序会自动启动。下一个视图将加载,但在此之后它不会执行任何正确的操作。基本上,它加载一个空白表视图,因为它从不调用“CellForRowatineXpath”(或任何其他基本表方法)

对此我完全没有任何解释。如果我删除该标记,我就可以让它完全加载并解析XML文件

是它们的名称,我可以在运行时搜索整个XML文件并删除“”的所有实例

大量编辑:

我刚刚注意到我是否打字

<!C D A T A(此处的任何文本都会消失)]>
在这里,它也会屏蔽所有文本

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

如果您使用的是NSXMLParser,并且您尝试通过它运行无效的输入(如上面所述),那么它将产生错误并停止传递XML的内容


如果您没有访问源XML的权限,请留下评论,我会看看是否可以找到人们修复它的方法。

我没有访问该文件的权限,但我想我已经回答了自己的问题。当我意识到这会导致这个网站出现问题后,我对CDATA做了更多的研究。@Devent:是的,您可以在CDATA回调方法中捕获数据。并让解析器执行其后续任务。我认为,如果您使用普通的libxml库,您将有更多关于解析xml文件的概念。
- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock
{
    NSString *someString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
}