2012-04-27 70 views
1

我有以下示例XML:XSLT訂購輸出關閉屬性

<Table> 
    <Row Position="0" Name="FName" /> 
    <Row Position="1" Name="LName" /> 
    <Row Position="2" Name="Email" /> 
    <Row Position="3" Name="Phone" /> 
    <Row Position="4" Name="Address" /> 
</Table> 

我希望能夠閱讀到這一點的輸出:

Row: FName 
Row: LName 
Row: Email 
Row: Phone 
Row: Address 

此列表但是應該排序基於該行的Position屬性,以便通過簡單地改變數量排序來改變輸出順序。

我想這將需要一個變量或兩個來完成,但不能完全確定執行。

乾杯

例子:

輸入

<Table> 
    <Row Position="0" Name="FName" /> 
    <Row Position="1" Name="LName" /> 
    <Row Position="4" Name="Email" /> 
    <Row Position="2" Name="Phone" /> 
    <Row Position="3" Name="Address" /> 
</Table> 

輸出

Row: FName 
Row: LName 
Row: Phone 
Row: Address 
Row: Email 

回答

2
<xsl:template match="Table"> 
    <xsl:apply-templates select="Row"> 
    <xsl:sort select="@Position" data-type="number"/> 
    </xsl:apply-templates> 
</xsl:template> 

<xsl:template match="Row"> 
    <xsl:text>Row: </xsl:text> 
    <xsl:value-of select="@Name"/> 
    <xsl:text>&#10;</xsl:text> 
</xsl:template> 
+0

做工精細TY,將考慮排序爲未來 – Mike 2012-04-27 10:39:00