наиболее эффективный способ решения КИО s, как это в XSLT, как правило, используется ключ . Ключевое определение идет на верхнем уровне таблицы стилей, вне каких-либо шаблонов, а также определяет, какие узлы вы хотите получить и как вычислить идентифицирующее значение ключа для каждого одного
<xsl:key name="writerById" match="writer" use="@id_writer" />
После того, как ключ определяется вы можете получить соответствующие узлы по значению ключа с помощью функции
<xsl:value-of select="key('writerById', @id_writer)/name"/>
некоторых XSLT процессоров (в частности, в последние версии саксонской EE) автоматически оптимизируют //writer[@id_writer = current()/@id_writer]
предикатов для выполнения столь же эффективно, как явный ключ на основе подход, но это не то, что вы можете обязательно полагайтесь, если вы используете более старую или менее сложную ocessor.
'../ writer', а не просто' writer' - они братья и сестры, а не родители и дети. –
Спасибо, @IanRoberts .. Немного над уверенностью, что я его не тестировал :) –