2013-03-17 86 views
3

例如,如何能夠將如何在XHTML文檔中嵌入XML文檔?

<?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。

然後,我得到這個...

enter image description here

...但我想是這樣的:

enter image description here

+0

我不明白 - 你想顯示原始的XML,並格式化爲可讀性? – Jodes 2013-03-17 17:12:10

+0

@Jodes是的。所以我希望瀏覽器使用其XHTML解析器解析XHTML,並使用XML解析器解析XML。 – Oriol 2013-03-17 17:18:58

回答

2

請注意,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查看器窗口,這可能是您想要的。

這裏有一個圖表:

 
    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 

由於似的被替換,留給你的iframe + Firefox作爲唯一可行的組合。

如果有人可以使用IE進行測試,請將您的結果編輯到表中。

+0

[** JSFiddle **](http://jsfiddle.net/qvRzT/1/)。有趣的是,我認爲'