ОБНОВЛЕНИЕ 17 июля 2013 года :
XALAN 2.7
не кэширует document()
вызовов в запросе. Поэтому крайне важно хранить каждый необходимый документ в переменной в XSL.
Я долго искал и не нашел конкретных ответов на мой простой вопрос:
Какой подход быстрее или компилятор "умный", чтобы оба варианта были одинаковыми?
Примечание. Я использую Xalan 2.7 (реализация по умолчанию в JDK 1.6):
1) Мне нужно прочитать свойство во внешнем XML:
<xsl:value-of select="document($path)/person/address/city"/>
Когда мне нужен город, я использую приведенное выше выражение (скажем, 100 раз)
2) Вместо того, чтобы вызывать document () 100 раз, я сохраняю узел XML в переменной:
<xsl:variable name="node" select="document($path)"/>
А потом я использую 100 раз
<xsl:value-of select="$node/person/address/city"/>
Какой из них быстрее, лучше и по каким причинам?
Спасибо!