是否可以在XML文档中插入HTML内容?
答
您可以包含HTML内容。正如你所提到的,一种可能性是将它编码到BASE64中。
另一个可能使用CDATA
标签。
实施例使用CDATA
:
<xml>
<title>Your HTML title</title>
<htmlData><![CDATA[<html>
<head>
<script/>
</head>
<body>
Your HTML's body
</body>
</html>
]]>
</htmlData>
</xml>
请注意:
CDATA的开口字符序列:<![CDATA[
CDATA收盘字符序列:]]>
答
BASE64编码的目的是采取二进制数据,并能够将其保存到一个字符串。这种好处需要付出代价,结果会增加(我认为这是一个4比3的比例)。有两种解决方案。如果你知道这些数据是格式良好的XML,请直接包含它。另一种更好的选择是将HTML包含在XML中元素的CDATA部分中。
答
只要您的html内容不需要包含CDATA
元素,就可以在HTML元素中包含CDATA
元素,否则您必须转义XML实体。
<element><![CDATA[<p>your html here</p>]]></element>
VS
<element><p>your html here</p></element>
+1 CDATA是更好的方式国际海事组织,因为它让事情人类可读,并且不使用Base64的不可避免的33%的额外重量 – 2010-12-10 19:15:24
只记得XML和CDATA保留空格。 – zzzzBov 2010-12-10 19:18:15
我决定使用BASE64,因为它将以100%的精度保存数据,当CDATA和转义格式化时会添加额外的空格。另外添加CDATA会增加额外的复杂性,并且需要某种预扫描HTML,以防HTML包含CDATA元素... – newbie 2011-10-25 06:49:51