例如,我该如何嵌入
<?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。
然后,我明白了......
......但我想要这样的事情:
答案 0 :(得分:2)
请注意,CDATA只是一种逃避字符的方法,而不是一种嵌入方法。现在回答你的问题:
据我所知,嵌入XML文件的唯一方法是使用object标签或iframe:
<!-- Keep in mind that iframe is invalid in XHTML 1.0 and 1.1.-->
<iframe src="data:application/xml,<root><node>Text</node></root>"/>
<!-- When using `data:mime/type,[data]' the type attribute is overriden -->
<object data="data:application/xml,<root><node>Text</node></root>"/>
这里的问题是,某些浏览器只会将XML的内容显示为内联文本,而其他浏览器将显示XML查看器窗口,这可能是您想要的。
这是一张图表:
layout engine (browser) | <object> | <iframe> ---------------------------------------------------------- Gecko (Firefox) | inline text | XML viewer Webkit (Safari / new Opera) | inline text | inline text Blink (Chrome/Chromium) | inline text | inline text Presto (old Opera) | XML Viewer | XML viewer Trident (IE5-IE8) | inline text | XML Viewer
由于presto正在被替换,因此您将使用iframe + firefox作为唯一可行的组合。
如果有人可以使用IE进行测试,请将结果编辑到表格中。