3

例如,我如何嵌入

<?xml version="1.0" encoding="utf-8"?>
<root>
    <node><![CDATA[Text]]></node>
</root>

在我的 XHTML 中?

我知道我可以把它放在 CDATA 部分......

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>My title</title>
</head>
<body>
<p>I am a XHTML paragraph!</p>
<div>
    <![CDATA[
    <?xml version="1.0" encoding="utf-8"?>
    <root>
        <node>Text</node>
    </root>
    ]]>
</div>
</body>
</html>

...但是我必须删除 XML 文件的 CDATA 部分,并且 XML 被解析为文本而不是 XML。

然后,我得到这个...

在此处输入图像描述

...但我想要这样的东西:

在此处输入图像描述

4

1 回答 1

3

请注意,CDATA 只是一种转义字符的方法,而不是一种嵌入方法。现在回答你的问题:

据我所知,嵌入 XML 文件的唯一方法是使用对象标签或 iframe:

<!-- Keep in mind that iframe is invalid in XHTML 1.0 and 1.1.-->
<iframe src="data:application/xml,&lt;root&gt;&lt;node&gt;Text&lt;/node&gt;&lt;/root&gt;"/>
<!-- When using `data:mime/type,[data]' the type attribute is overriden -->
<object data="data:application/xml,&lt;root&gt;&lt;node&gt;Text&lt;/node&gt;&lt;/root&gt;"/>

这里的问题是,一些浏览器只会将 XML 的内容显示为内联文本,而其他浏览器会显示 XML 查看器窗口,这可能是您想要的。

这是一张图表:

   布局引擎(浏览器) | <对象> | <iframe>
 -------------------------------------------------- --------
  壁虎 (火狐) | 内嵌文字 | XML 查看器
  Webkit (Safari / 新 Opera) | 内嵌文字 | 内嵌文本
  闪烁(铬/铬)| 内嵌文字 | 内嵌文本
  Presto(旧歌剧) | XML 查看器 | XML 查看器
  三叉戟 (IE5-IE8) | 内嵌文字 | XML 查看器

由于 presto 正在被替换,因此您只剩下 iframe+firefox 作为您唯一可行的组合。

如果有人可以使用 IE 进行测试,请将您的结果编辑到表格中。

于 2013-11-02T03:51:52.103 回答