在HTML中嵌入外部XML文件并使用XSL文件解析它?

时间:2011-01-23 10:03:43

标签: html xml xslt

我有一个XML文件(“exchange.xml”)和一个用于解析它的XSL文件(“exchange.xsl”)。 exchange.xml有以下行:

<?xml-stylesheet type="text/xsl" href="exchange.xsl"?>

表示应该使用exchange.xsl来解析文件。

如果我在浏览器中加载exchange.xml,它会按预期进行解析。但是,我希望将swap.xml嵌入到HTML文件中,否则该文件中没有任何XML。我该怎么做呢?据我所知,当您使用XML标记的SRC ID在XML中嵌入XML时,您必须自己解析它以便显示它。我希望它能够使用我已经为它创建的XSL文件自动显示。

我还注意到一些浏览器(例如Android默认浏览器)不会使用XSL文件解析XML,并且需要服务器端转换。是否可以将我的XML嵌入到HTML文件中但使用服务器端转换?

2 个答案:

答案 0 :(得分:2)

据我所知,W3C指定的HTML 4没有提供任何方法在HTML 4文档中嵌入XML标记。在我知道的浏览器中,IE只有HTML 4的扩展,允许使用所谓的XML数据岛http://msdn.microsoft.com/en-us/library/ms766512%28v=VS.85%29.aspx,其中IE的HTML解析器识别可以包含XML标记的xml元素作为其内容或使用src属性链接到它。因此,除非你想使用IE特定的东西,比如XML数据岛,否则将XML作为数据加载到HTML文档中的跨浏览器方式是使用带有Javascript的XMLHttpRequest。

答案 1 :(得分:0)

您可以使用PHP: XSL class转换XML并在页面中通过PHP包含它。

例如:showxml。 php

<?php
function processXML($file,$styles){
...  //example here
}
<html>
...
<div id="xml>
<?php echo processXML('foo.xml','bar.xsl'); ?>
</div>
...
</html>