gpt4 book ai didi

xslt - 在 xslt 中重复使用 document() 时的性能

转载 作者:行者123 更新时间:2023-12-04 20:50:37 25 4
gpt4 key购买 nike

像这样在整个 xslt 文件中调用相同的文档是否可以接受:

<xsl:value-of select="document('doc.xml')/root/bar/foo1" />
<xsl:value-of select="document('doc.xml')/root/bar/foo2" />
<xsl:value-of select="document('doc.xml')/root/bar/foo3" />

……?

我可以想象缓存避免了一次又一次地读取文件的开销。

或者我应该将 doc.xm 存储在一个变量中并使用该变量进行查询?

在这种情况下,我将不得不使用像 xsle 这样的库,因为我使用的是 xslt1。

或者还有其他解决方案吗?

注意:XPath 的某些部分应该是动态的,例如:
<xsl:value-of select="document('doc.xml')/root/*[name()=$lang]/foo3" />

最佳答案

XSLT 处理器需要确保如果您使用相同的 URL 调用 document() 两次,返回的节点在 count(document('a.xml')|document('a'xml')) = 1 的意义上是相同的. 不缓存文档很难满足这个要求,所以我认为你可以合理地确定每个文档只会被获取和解析一次。然而,把它放在一个全局变量中永远不会有任何伤害。

关于xslt - 在 xslt 中重复使用 document() 时的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11010638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com