XSL 1.0查找/替换节点的最快方法

时间:2015-12-01 15:42:21

标签: xslt-1.0

查找特定节点(具有id或类)的最快方法是什么

这很慢:

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

我有一个xsl,有~3000行,需要大约20-40秒来渲染..

但我怎么能更快?

1 个答案:

答案 0 :(得分:1)

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

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

这样的东西
<xsl:key name="MyKey" match="//div" use="@id"/>

您可以在此处找到一个完整涵盖您的&#34; id&#34; -question的示例:http://www.w3schools.com/xsl/el_key.asp

如果你的&#34; id&#34; -attributs并不总是绑定到&#34; div&#34; -tags,你可以将match设置为match="//*",但是 - 看在性能上 - 您将获得最佳结果,您可以越接近定义路径...