Czy dopuszczalne jest, aby zadzwonić do tego samego dokumentu w całej XSLT akt tak:wydajność podczas korzystania z dokumentu() wielokrotnie w 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" />
...?
Mogę sobie wyobrazić, że buforowanie pozwala uniknąć narzutu na to, aby czytać plik za każdym razem.
Czy powinienem zapisać plik doc.xm w zmiennej i użyć tej zmiennej do zapytania?
W tym przypadku będę musiał użyć jakiejś biblioteki takiej jak Xsle, ponieważ używam xslt1.
Czy jest jakieś inne rozwiązanie?
Uwaga: Niektóre części XPath powinna być dynamiczna jak:
<xsl:value-of select="document('doc.xml')/root/*[name()=$lang]/foo3" />
Aby nie mieć żadnych wątpliwości, zawsze możesz * zmierzyć * wydajność - w tym konkretnym przypadku pomiary powinny potwierdzić odpowiedź Michaela Kaya. Ogólnie rzecz biorąc, mierzenie wydajności jest zalecaną metodą odpowiedzi na takie pytania, a nie wiarą w kogokolwiek. –
Dimitre, ofcoure, zobacz moją uwagę na odpowiedź Woody'ego. – Peter