如何以特定順序編寫元素屬性而無需明確寫入?按特定順序排列屬性以便輸出
考慮:
<xsl:template match="Element/@1|@2|@3|@4">
<xsl:if test="string(.)">
<span>
<xsl:value-of select="."/><br/>
</span>
</xsl:if>
</xsl:template>
的屬性應該出現的順序1, 2, 3, 4
。不幸的是,你不能保證在XML屬性的順序,也可能是<Element 2="2" 4="4" 3="3" 1="1">
所以上面的模板將產生如下:
<span>2</span>
<span>4</span>
<span>3</span>
<span>1</span>
理想的情況下,我不想要測試,如果它的每個屬性已經有了價值。我想知道如果我能以某種方式設置我的顯示順序?或者我需要明確地做,並重復如果測試如下:
<xsl:template match="Element">
<xsl:if test="string(./@1)>
<span>
<xsl:value-of select="./@1"/><br/>
</span>
</xsl:if>
...
<xsl:if test="string(./@4)>
<span>
<xsl:value-of select="./@4"/><br/>
</span>
</xsl:if>
</xsl:template>
在這種情況下可以做什麼?
謝謝各位的回覆。 我不是很清楚。我並不需要通過名稱對屬性進行排序,而是自己指定一個訂單。 說一個文檔將需要按順序1,2,3,4顯示它們。另一個按順序2,3。另一個可以說是3,1,2,4。 我想知道是否可以存儲以某種方式確定屬性名稱的特定順序......然後通過它們迭代。 基本上,爲了顯示一系列屬性值,有一些簡潔和非常靈活的方法。 希望有道理? – DashaLuna 2010-02-18 16:55:01