NSXMLParser无法解析某些文本字符串

时间:2013-02-24 01:16:29

标签: ios xcode nsxmlparser

我发现由于禁止使用的字符,NSXMLParser(XCode / iOS)不会解析以下XML字符串。如果需要转义,如何在发送到XML解析器之前转义XML字符串。

@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <Elem xmlns=\"Sample\"><Text Text=\"some text <name@somcompany.com> \"></Text></Elem>";

@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <Elem xmlns=\"Sample\"><Text Text=\"some text \"quoted text\" \"></Text></Elem>";

两者都会产生以下错误:

Error Domain=NSXMLParserErrorDomain Code=38 "The operation couldn’t be completed.
(NSXMLParserErrorDomain error 38.)

这没有错误:

@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Elem xmlns=\"Sample\"><Text Text=\"some text \'quoted text\' \"></Text></Elem>";

感谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用百分比编码转义字符。

str = @" \">";
str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

然后你可以用

恢复它们
str = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

但我不确定您是正确创建XML还是首先创建XML。

修改

源(生成该XML的人)不正确,必须转义文本。你不能用解析器做到这一点。