2011-04-24 74 views
0

可能重复:http://www.w3schools.com/xml/simplexsl.xml故障显示XML文件

我坐在我的桌面上的两个文件:
Can chrome be made to perform an xsl transform on a local file?

从这个例子考虑: simple.xslsimplexsl.xml,当我用Opera,FF4,IE9和Safari打开它们时......它们正确地出来了。但是,当我使用Chrome时...我得到一个空白页。帮帮我!

(如果有人可以复制和粘贴这些开放的,看它是否适用于Chrome 10对他们来说将是巨大的!)

simple.xsl

<?xml version="1.0" encoding="ISO-8859-1"?> 

<!-- Edited by XMLSpy® --> 

<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> 

    <body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE"> 

    <xsl:for-each select="breakfast_menu/food"> 

     <div style="background-color:teal;color:white;padding:4px"> 

     <span style="font-weight:bold"><xsl:value-of select="name"/></span> 

     - <xsl:value-of select="price"/> 

     </div> 

     <div style="margin-left:20px;margin-bottom:1em;font-size:10pt"> 

     <xsl:value-of select="description"/> 

     <span style="font-style:italic"> 

      <xsl:value-of select="calories"/> (calories per serving) 

     </span> 

     </div> 

    </xsl:for-each> 

    </body> 

</html> 

simplexsl.xml

<?xml version="1.0" encoding="ISO-8859-1"?> 

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

<!-- Edited by XMLSpy® --> 

<breakfast_menu> 

    <food> 

     <name>Belgian Waffles</name> 

     <price>$5.95</price> 

     <description>two of our famous Belgian Waffles with plenty of real maple syrup</description> 

     <calories>650</calories> 

    </food> 

    <food> 

     <name>Strawberry Belgian Waffles</name> 

     <price>$7.95</price> 

     <description>light Belgian waffles covered with strawberries and whipped cream</description> 

     <calories>900</calories> 

    </food> 

    <food> 

     <name>Berry-Berry Belgian Waffles</name> 

     <price>$8.95</price> 

     <description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description> 

     <calories>900</calories> 

    </food> 

    <food> 

     <name>French Toast</name> 

     <price>$4.50</price> 

     <description>thick slices made from our homemade sourdough bread</description> 

     <calories>600</calories> 

    </food> 

    <food> 

     <name>Homestyle Breakfast</name> 

     <price>$6.95</price> 

     <description>two eggs, bacon or sausage, toast, and our ever-popular hash browns</description> 

     <calories>950</calories> 

    </food> 

</breakfast_menu> 
+2

重复的[可铬在本地文件上执行xsl转换?](http://stackoverflow.com/q/3828898/211232) – WReach 2011-04-24 14:56:26

+0

这是一个已知的问题,Webkit不遵循'file:'协议下的样式表。在'http:'协议(本地服务器)下,它按预期工作。 – 2011-04-25 14:15:48

回答

0

更新

请参阅this answer - 似乎Chrome根本不支持加载XML文件。

并非所有XSLT处理器都支持嵌入式XSLT样式表

更改您的密码(这是很容易做到的,因为它只涉及到增加顶部<xsl:stylesheet>元素和包装所有的代码为<xsl:template match="/">元素)到这个真实的XSLT样式表:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!-- Edited by XMLSpy® --> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns="http://www.w3.org/1999/xhtml"> 
<xsl:template match="/"> 
<html> 
    <body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE"> 
     <xsl:for-each select="breakfast_menu/food"> 
      <div style="background-color:teal;color:white;padding:4px"> 
       <span style="font-weight:bold"> 
        <xsl:value-of select="name"/> 
       </span>   - 
       <xsl:value-of select="price"/> 
      </div> 
      <div style="margin-left:20px;margin-bottom:1em;font-size:10pt"> 
       <xsl:value-of select="description"/> 
       <span style="font-style:italic"> 
        <xsl:value-of select="calories"/> (calories per serving)   
       </span> 
      </div> 
     </xsl:for-each> 
    </body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 
+0

好吧,完成但仍然没有工作... – stockoverflow 2011-04-25 07:22:14

+0

@stockoverflow:正如我在更新中所说,这似乎是不可能与Chrome - 你需要使用一些JavaScript来启动XSLT转换。 – 2011-04-25 12:30:39

+0

谢谢,我可以链接到这个Javascript代码段 – stockoverflow 2011-04-25 13:20:50