XSL 1.0 到 find/replace 节点的最快方法

XSL 1.0 Fastest way to find/replace node

找到特定节点(有 id 或 class)最快的方法是什么

这很慢:

/html/body[contains(concat(' ',normalize-space(@class),' '),' fooclass ')]//div[@id = 'fooClass'] 
//div[@id = 'fooClass']
//div[@class = 'fooClass']

我有一个约 3000 行的 xsl,它需要大约 20-40 秒来呈现..

但是我怎样才能更快呢?

//div[@id = 'fooClass']应该是最快的...

你可能会想到一把钥匙。像

<xsl:key name="MyKey" match="//div" use="@id"/>

您会在此处找到完全涵盖您的 "id" 问题的示例:http://www.w3schools.com/xsl/el_key.asp

如果您的 "id"-属性并不总是绑定到 "div"-标签,您可以将 match 设置为 match="//*",但是 - 考虑性能 - 你'会得到最好的结果,你可以定义越近的路径...