2014-10-31 69 views
0

我試圖將使用xslt樣式表的xml文件轉換爲用於打印輸出值的html格式。 我.xml文件看起來是這樣的:使用xslt樣式表將xml轉換爲html

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type= "text/xsl" href="rt.xsl"?> 
<entityset>  
<entity id="32" name="RT: Testing : Testing" hidden="true"> 
    <attribute id="1242" name="Tiketi receiver" code="start_supportGroup"> 
     <value>3.Saldo</value> 
    </attribute> 
    <attribute id="682" name="Kohde" code="store"> 
     <reference id="288799" name="Market"/> 
    </attribute> 
    <attribute id="683" name="Contact" code="person"> 
     <value>[email protected]</value> 
    </attribute> 
    <attribute id="684" name="Puhelinnumero" code="phone"> 
     <value>0505444566</value> 
    </attribute> 
</entity> 
<entity id="32" name="RT: Testing2 : Testing2" hidden="true"> 
    <attribute id="1243" name="Tiketi receiver2" code="start_supportGroup"> 
     <value>4.Saldo</value> 
    </attribute> 
    <attribute id="682" name="Kohde" code="store"> 
     <reference id="288799" name="Market2"/> 
    </attribute> 
    <attribute id="683" name="Contact" code="person"> 
     <value>[email protected]</value> 
    </attribute> 
    <attribute id="684" name="Puhelinnumero" code="phone"> 
     <value>05054445663</value> 
    </attribute> 
</entity> 
</entityset> 

而且我想在屬性打印出一個HTML TD元素的代碼=「」的一部分。 類似這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="entity"> 
<html> 
<body> 
<h2>RKPP-TIKETIT</h2> 
<table border="1"> 
    <tr bgcolor="#9acd32"> 
    <th style="text-align:left">ID</th> 
    <th style="text-align:left">Kohde</th> 
    <th style="text-align:left">StartSupportgroup</th> 
    </tr> 
    <xsl:for-each select="entity/attribute"> 
    <tr> 
    <td><xsl:for-each select="attribute"> 
    <xsl:attribute name="{@code}" > 
    <xsl:value-of select="."/> 
    </xsl:attribute> 
    </xsl:for-each></td> 
    </tr> 
    </xsl:for-each> 
</table> 
</body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 

嗨,我可以實現這個請諮詢。

編輯:這就是我想要實現:

start_supportgroup store phone 
<td>3.Saldo</td> <td>Market</td>  <td>505444566</td> 
<td>4.Saldo</td> <td>Market2</td> <td>5054445663</td> 

的圖像: http://www.imgrobot.com/image/wUQ

感謝,

託比

+0

你有一個具體的問題? – 2014-10-31 09:16:23

+0

嗨,是的,我有。如何使用html表td值打印出 4.Saldo user2023042 2014-10-31 09:27:10

+0

原始問題用想要的輸出編輯 – user2023042 2014-10-31 09:34:21

回答

1

如果我理解正確的話,你想是這樣的:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/> 

<xsl:template match="/entityset"> 
    <table border="1"> 
     <tr> 
      <th>StartSupportgroup</th> 
      <th>Store</th> 
      <th>Phone</th> 
     </tr> 
     <xsl:apply-templates select="entity"/> 
    </table> 
</xsl:template> 

<xsl:template match="entity"> 
    <tr> 
     <td><xsl:value-of select="attribute[@code='start_supportGroup']/value"/></td> 
     <td><xsl:value-of select="attribute[@code='store']/reference/@name"/></td> 
     <td><xsl:value-of select="attribute[@code='phone']/value"/></td> 
    </tr> 
</xsl:template> 

</xsl:stylesheet> 

適用於你的輸入,這將返回:

<?xml version="1.0" encoding="utf-8"?> 
<table border="1"> 
    <tr> 
     <th>StartSupportgroup</th> 
     <th>Store</th> 
     <th>Phone</th> 
    </tr> 
    <tr> 
     <td>3.Saldo</td> 
     <td>Market</td> 
     <td>0505444566</td> 
    </tr> 
    <tr> 
     <td>4.Saldo</td> 
     <td>Market2</td> 
     <td>05054445663</td> 
    </tr> 
</table> 

呈現爲:

enter image description here

+0

嗨邁克爾是的,這正是我想要的..對於每個部分是缺少的,你可以寫這個嗎? – user2023042 2014-10-31 10:13:57

+0

@ user2023042 for-each部分不是「缺失」。它通過使用模板來消除*。 – 2014-10-31 10:21:42

+0

真的..由於某種原因,它不改變行,它看起來像這樣在IE瀏覽器http://www.imgrobot.com/images/2014/10/31/output2.jpg – user2023042 2014-10-31 10:30:16