我发现由于禁止使用的字符,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>";
感谢。
答案 0 :(得分:0)
您可以尝试使用百分比编码转义字符。
str = @" \">";
str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
然后你可以用
恢复它们str = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
但我不确定您是正确创建XML还是首先创建XML。
源(生成该XML的人)不正确,必须转义文本。你不能用解析器做到这一点。