2014-06-09 24 views
0

我正在尝试运行.xslt以显示一些.xml中的信息到eclipse中的html页面。我运行它,日食产生.out.xml文件,当我尝试使用铬跑我得到的消息:试图用eclipse为xml运行xslt,但它不起作用

此XML文件似乎不具有与其关联 任何样式信息。

我在这个全新的,所以我也弄不清是怎么回事...

XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="html_xml.xslt"?> 
<CarModel> 
<Audi model = "TT" year = "2006" starting_price = "33.000$"> 
    <type>sport</type> 
    <horse_power>222hp</horse_power> 
    <drivetrain>quattro</drivetrain> 
    <transmission>6_Manual</transmission> 
</Audi> 
<Mercedes model = "W222_S400" year = "2013" starting_price = "63.000$"> 
    <type>luxury</type> 
    <horse_power>302hp</horse_power> 
    <drivetrain>front_wheel_drive</drivetrain> 
    <transmission>7_Automatic</transmission> 
</Mercedes> 
<BMW model = "X3_xDrive35i" year = "2010" staring_price = "40.000$"> 
    <type>crossover_SUV</type> 
    <horse_power>302hp</horse_power> 
    <drivetrain>quattro</drivetrain> 
    <transmission>6_Manual</transmission> 
</BMW> 
</CarModel> 

XSLT文件:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3/1999/XSL/Transform" version="1.0"> 
<xsl:output method="html"/> 
<xsl:strip-space elements="*"/> 
<xsl:template match="/"> 
    <html><body><h2> Car Model Info </h2> 
    <table border="1"> 
    <xsl:apply-templates mode="elem" select="/*"/> 
    </table></body> 
    </html> 
</xsl:template> 
<xsl:template mode="elem" match="/*"> 
    <tr bgcolor="#9acd32"> 
    <td><xsl:value-of select="name()"/></td> 
    <td><xsl:apply-templates mode="child" select="/*/*"/> (c) </td> 
    <td><xsl:apply-templates mode="attr" select="/*/@*"/> (a) </td> 
    </tr> 
</xsl:template> 
<xsl:template mode="child" match="/*/*"> 
    <xsl:value-of select="name()"/> 
</xsl:template> 
<xsl:template mode="attr" match="/*/@*"> 
    <xsl:value-of select="name()"/> 
</xsl:template> 

</xsl:stylesheet> 

XSLT OUTPUT :

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3/1999/XSL/Transform" version="1.0"> 
<xsl:output method="html"/> 
<xsl:strip-space elements="*"/> 
<xsl:template match="/"> 
    <html><body><h2> Car Model Info </h2> 
    <table border="1"> 
    <xsl:apply-templates mode="elem" select="/*"/> 
    </table></body> 
    </html> 
</xsl:template> 
<xsl:template mode="elem" match="a:*"> 
    <tr bgcolor="#9acd32"> 
    <td><xsl:value-of select="name()"/></td> 
    <td><xsl:apply-templates mode="child" select="/*/*"/> (c) </td> 
    <td><xsl:apply-templates mode="attr" select="/*/@*"/> (a) </td> 
    </tr> 
</xsl:template> 
<xsl:template mode="child" match="/*/*"> 
    <xsl:value-of select="name()"/> 
</xsl:template> 
<xsl:template mode="child" match="/*/@*"> 
    <xsl:value-of select="name()"/> 
</xsl:template> 

</xsl:stylesheet> 
+0

向我们显示XSLT输出。 – vanje

回答

1

Eclipse的似乎很喜欢与.xsl,而不是.xslt命名样式表。至少,当我试图在我的环境样式表和输入XML,我改名为这样的,改变你的XML的第二行

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

,并改变你的XSL的第二行

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

正如另一条评论所建议的。在此之后,以下为我工作:

  1. 在Eclipse项目相同的目录名为input.xmlhtml_xml.xsl文件
  2. input.xml右键单击并选择Run As - >XSL Transformation
  3. 寻找名为input.out.html文件产生
+0

感谢您的回答我永远不会猜到... – Saraki

0

请保存为Out.html将文件输出到eclipse中。 如果用XML扩展您打开HTML文件,我们会得到错误的

This XML file does not appear to have any style information associated with it. The document tree is shown below. 

<html> 
    <body> 
    <h2>Car Model Info</h2> 
     <table border="1"> 
     <tr bgcolor="#9acd32"> 
     <td>CarModel</td> 
     <td>AudiMercedesBMW (c)</td> 
     <td>(a)</td> 
     </tr> 
    </table> 
    </body> 
</html> 
+0

您好,我已经观察了一个,可能是错字错误XSLFile有错误的XSL命名空间。正确的是xmlns:xsl =“http://www.w3.org/1999/XSL/Transform” –

+1

感谢您的回答!您编写的代码是我提交的代码或您创建的代码的结果,因为我的Out.xml没有值,但与.xslt完全一样。 – Saraki

+1

我已经在我的本地运行了相同的代码并保存到XML并在Chrome中打开。但我们必须将响应保存在html文件中。如果在Out.xml中看到相同的XSLT。 XSLT中可能存在错误或者查找错误的输出文件。 –

0
  1. 选择XSLT文件运行方式 - Runconfiguration
  2. 下XSL创建新的配置
  3. 选择输入文件(的test.xml)和变换文件(test.xslt)
  4. 选择类路径标签,并在用户条目添加外部罐(撒克逊-HE-9.5.0.1.jar)
  5. 从输出选项卡中选择输出文件
相关问题