2014-06-09 72 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. 從輸出選項卡中選擇輸出文件
相關問題