对于我的应用程序,我必须保存包含一些带有HTML文本的元素的XML文档。 结果示例应为:
<gpx>
<wpt>
<elementInHTML>
<p>Sample text.</p>
</elementInHTML>
etc...
但是当我将这个html元素添加到我的NSXMLDocument时,'&lt;' (到<
)会自动正确转义,但'&gt;'不(到>
)。
代码:
NSXMLElement *newWPT = [NSXMLElement elementWithName:@"wpt"];
NSXMLElement *htmlElement = [NSXMLElement elementWithName:@"elementInHTML"];
htmlElement.stringValue = @"<Sample text>";
[newWPT addChild:htmlElement];
但是这会生成如下的XML文档:
<gpx>
<wpt>
<elementInHTML>
<p>Sample text.</p>
</elementInHTML>
etc...
对于必须处理此xml文件的设备,此结果无效。
有人知道如何将正确转义的html字符串封装到NSXMLDocument中吗?
答案 0 :(得分:3)
&amp;正确地为XML填充字符串,大于有效字符:http://www.w3.org/TR/REC-xml/#syntax
它似乎是设备实现特定的问题。
您的简单选择是将您的HTML标记包含在CDATA中。 ...并希望设备客户端XML解析器实现正确理解它。
(如果您的html标记还包含CDATA部分,则您必须使用&#34;&amp; gt;&#34;来查找/替换&#34;&gt;&#34;之前的链接。)
P.D。:任何搜索引擎中的NSXMLNode CDATA都会引导您更接近&#34;复制粘贴&#34;
编辑:
现在更多地了解原始问题中字符串的内容(请参阅问题评论),并根据字符串的性质对其他问题的回答也可能有所帮助:Objective-C and Swift URL encoding