簡體   English   中英

xslt-在xsl:apply-templates中排序與在xsl:for-each中排序

[英]xslt - sort in xsl:apply-templates vs sort in xsl:for-each

選項(a)和(b)之間的靈活性和性能優勢是什么? 提前致謝。

xml數據:

<grandparent gname="gname1">
<parent pname="pname1">
<child>cname1</child>
<child>cname2</child>
<child>cname3</child>
<child>cname4</child>
</parent>
<parent pname="pname2">
<child>cname11</child>
<child>cname12</child>
<child>cname13</child>
<child>cname14</child>
</parent>
<parent pname="pname3">
<child>cname21</child>
<child>cname22</child>
<child>cname23</child>
<child>cname24</child>
</parent>
<grandparent>

部分xslt代碼:

(一種)

<xsl:apply-templates select="/grandparent/parent">
    <xsl:sort select="@pname"/>
</xsl:apply-templates>

(b)

<xsl:templates match="/grandparent">
    <xsl:for-each select="parent">
        <xsl:sort select="@pname" order="descending"/>
    </xsl:for-each>
</xsl:template>

幾乎可以肯定,性能完全取決於您所使用的XSLT系統,並且在不同的實現方式之間,性能會有很大的不同-完全有可能一個引擎的最佳性能與另一個引擎的不同,因此唯一的方法是可以肯定的(並且因為它很容易發現)是根據您自己選擇的XSLT引擎並對其進行計時。

性能:正如伍迪所說,這取決於處理器。 沒有內在的理由期望有任何區別。

靈活性:apply-templates總是更靈活。 雖然可以找到一個平衡點; 有時,明智地使用for-each可以使代碼更清晰,可讀性更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM