2011-01-23 67 views
1

我有一个用于解析它的XML文件(“exchange.xml”)和一个XSL文件(“exchange.xsl”)。 exchange.xml具有以下行:在HTML中嵌入外部XML文件并使用XSL文件来解析它?

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

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

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

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

回答

2

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

+0

感谢您的帮助 - 我决定停止避免学习一个Web开发框架,看起来像我已经到了需要更复杂的事情状态。 – Cera 2011-01-24 04:17:31

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>