2012-08-27 29 views
2

文獻:XML到HTML使用XSLT變換

<?xml version="1.0" encoding="utf-8"?> 
<page> 
    <tab dim="30"> 
     <column> 

     </column> 
     <column> 

     </column> 
    </tab> 
    <tab dim="70"> 
    </tab> 
</page> 

樣式表:

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

<xsl:template match="/"> 
    <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text> 
    <html> 
    <head> 

    </head> 
    <body> 
     <xsl:for-each select="tab"> 
     <div class="tab">tab</div> 
     </xsl:for-each> 
    </body> 
    </html> 
</xsl:template> 

</xsl:stylesheet> 

生產本

<!DOCTYPE html><html><head></head><body></body></html> 

我想這個

<!DOCTYPE html><html><head></head><body><div class="tab">tab</div><div class="tab">tab</div></body></html> 

回答

1

你需要

<xsl:for-each select="page/tab"> 

,而不是

<xsl:for-each select="tab"> 

要麼,你可以做

<xsl:template match="/page"> 

代替

<xsl:template match="/"> 
0

我會用模板匹配<標籤> - 和<頁>

<xsl:template match="page"> 
    <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text> 
    <html> 
    <head></head> 
    <body> 
     <xsl:apply-templates/> 
    </body> 
    </html> 
</xsl:template> 

<xsl:template match="tab"> 
    <div class="tab">tab</div> 
</xsl:template>