我正在使用NSXMLParsing来解析一些XML数据。
我有一个名为.... <Email>abc@expressl&t.net</Email>
所以当didStartElement
委托回复elementName电子邮件
它将进入foundCharacters
以获取电子邮件文本。
但是在foundCharacters文本字符串中,我只得到abc@expressl
而不是全文。它将&t
视为特殊角色。这就是为什么之后它会进入parseErrorOccurred
委托。
如何避免此类错误。我不能硬编码任何东西来取代文字。电子邮件应按原样打印。
答案 0 :(得分:3)
简单地说,这不是有效的XML。必须转义&
字符。来自section 2.4 of the XML 1.0 spec:
&符号(
&
)和左尖括号(<
)不得以字面形式出现,除非用作标记分隔符,或用于注释,处理指令或CDATA部分。如果在其他地方需要它们,则必须分别使用数字字符引用或字符串&
和<
进行转义。
如果要使用XML解析器,则需要为其提供有效的XML。无论创建什么,XML都应该为您转义:
<Email>abc@expressl&t.net</Email>
是什么创建了XML文件?当人们从字符串构建XML而不是使用XML API来创建XML时,通常会发生这种情况。
答案 1 :(得分:1)
有效
<Email>abc@expressl&t.net</Email>
应该转义为
<Email>abc@expressl&t.net</Email>