2011-11-15 162 views
0

我有一個XML文件生成的使用javax.sql.rowset.WebRowSet.writeXml它看起來像:XSLT轉換通用的XML

<metadata> 
This section has column properties like name/label etc 
</metadata> 
<data> 
<currentRow> 
     <columnValue>Ken</columnValue> 
     <columnValue>12</columnValue> 
     <columnValue>USA</columnValue> 
    </currentRow> 
</data> 

我想轉換這個樣子:

<Class> 
    <Student> 
     <name>Ken</name> 
     <ID>12</ID> 
     <location>USA</location> 
    </Student> 
</Class> 

我該怎麼辦轉換?我需要將XML轉換爲HTML表格.

+0

所以只有一個'currentRow'元素和多個'columnValue'元素? –

+0

是的..這是正確的 – spectrum

回答

0

以下樣式表會產生所需的結果:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
     <Class> 
      <xsl:apply-templates select="/*/data/currentRow" /> 
     </Class> 
    </xsl:template> 
    <xsl:template match="currentRow"> 
     <Student> 
      <xsl:apply-templates select="columnValue" /> 
     </Student> 
    </xsl:template> 
    <xsl:template match="columnValue[1]"> 
     <name><xsl:apply-templates/></name> 
    </xsl:template> 
    <xsl:template match="columnValue[2]"> 
     <ID><xsl:apply-templates/></ID> 
    </xsl:template> 
    <xsl:template match="columnValue[3]"> 
     <location><xsl:apply-templates/></location> 
    </xsl:template> 
</xsl:stylesheet> 

注意:添加一個根節點到給定的源使其格式良好。

+0

這個工程!謝謝 – spectrum