是否可以在XML文档中插入HTML内容?


77

我需要将HTML内容插入XML文档中,这是否可能,或者应该以BASE64或类似方式对HTML内容进行编码?

Answers:


138

您可以包含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的结束字符序列: ]]>


7
+1 CDATA是更好的IMO,因为它使事物易于阅读,并且不会伴随base64不可避免地增加33%的重量
Pekka 2010年

3
只要记住XML和CDATA保留空白即可。
zzzzBov 2010年

5
我决定使用BASE64,因为当格式化CDATA和转义时,它将以100%的精度保存数据。另外添加CDATA会增加额外的复杂性,并且如果HTML包含CDATA元素,则需要某种形式的预扫描HTML……
newbie

1
链接已过期。
富兰克林·于

22

只要您的html内容不需要包含CDATA元素,就可以在CDATA元素中包含HTML ,否则就必须转义XML实体。

<element><![CDATA[<p>your html here</p>]]></element>

VS

<element>&lt;p&gt;your html here&lt;/p&gt;</element>

8

BASE64编码的目的是获取二进制数据并将其持久化为字符串。这种好处是有代价的,结果的大小增加了(我认为这是4:3的比例)。有两种解决方案。如果您知道数据将采用格式正确的XML,请直接将其包括在内。另一种更好的选择是将HTML包含在XML内元素内的CDATA节中。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.