选项(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代码:
(a)中
<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>
答案 0 :(得分:0)
性能几乎可以肯定完全取决于您使用的XSLT系统,并且在不同的实现之间会有很大差异 - 完全有可能一个引擎的最佳性能与另一个引擎的性能不同,所以只有可靠的方法(并且因为它很容易找到)是在您自己选择的XSLT引擎上尝试它并计时。
答案 1 :(得分:0)
性能:正如伍迪所说,这取决于处理器。没有内在的理由期待任何差异。
灵活性:apply-templates总是更灵活。虽然找到了平衡点;有时代码可以更清晰,更易读,并且明智地使用for-each。