是否有一些关于如何在 xslt 中创建更高效的 xpath 选择器的一般提示或最佳实践?
例如,假设您有一个仅包含第一级部分的 DocBook XML 文档,如下所示:
<chapter>
<section><info><title>my first section</title></info> ... </section>
<section userlevel="expert"><info><title>my second section</title></info> ... </section>
<section><info><title>my third section</title></info> ... </section>
</chapter>
我认为在几乎所有情况下,像//d:section
(1)这样的选择器都比像 ( /d:chapter/d:section
2) 这样的选择器更糟糕。我可以概括一下,说选择器越有选择性,它就会越快吗?
再举一个例子:如果你想要第二个部分元素,你可以从所有部分的子树中拉出来,或者直接用//d:section[@userlevel]
. 此选择器使用更具选择性但会更快的属性吗?
使用 XPath 时应该做什么(或避免)的经验法则?