XML不能直接嵌入普通HTML,因其语法不严格;可通过CDATA块将HTML作为纯文本存放,或使用符合XML规范的XHTML(需闭合标签、引号属性、命名空间等)。
XML 本身不能直接“嵌入” HTML,因为 XML 是严格语法的标记语言,而传统 HTML(尤其是 HTML4 及更早版本)不满足 XML 的格式要求(比如标签不闭合、大小写不敏感、属性可无引号等)。但你可以用两种方式安全地在 XML 中包含 HTML 内容:一是将 HTML 片段作为 CDATA 块处理;二是使用符合 XML 规范的 HTML——也就是 XHTML。
XML 要求所有标签必须闭合、区分大小写、属性值必须加引号、文档结构严格嵌套。例如,下面这段 HTML 在 XML 中会报错:
欢迎
原因包括:
•
和 没有闭合(XML 要求写成
、)
• 属性值 logo.gif 没加引号(XML 要求 "logo.gif"
)
• 混用大小写(如
和
被视为不同元素)
如果你只是想把一段现成的 HTML 当作纯文本内容存进 XML,不解析、不校验,可用 CDATA 区域:
注意:
• CDATA 内的内容完全不被 XML 解析器解析,浏览器或程序需自行提取并当作 HTML 渲染
• 不能在 CDATA 里再写 ,也不能出现字符串 ]]>(会提前结束 CDATA)
XHTML 是 HTML 的一个子集,它遵循 XML 语法规则,因此可以直接作为 XML 文档使用或嵌入其他 XML 结构中。常见 XHTML 1.0/1.1 或 XHTML5(即 HTML5 的 XML 序列化)都满足这一要求。
合格的 XHTML 片段示例:
这是 加粗 文字
关键规则包括:
• 所有元素必须有结束标签,或用自闭合形式(如
、)
• 所有属性名小写,属性值必须加双引号
• 必须声明命名空间(如 xmlns="http://www.w3.org/1999/xhtml"),尤其嵌入到非 XHTML 的 XML 中时
• 推荐使用 .xhtml 后缀,并以 application/xhtml+xml MIME 类型发送
假设你有一个叫 的 XML 文档,想在里面放格式化正文: