Я думаю, что это вопрос новичка, он касается ссылок на переменные в разных шаблонах XSLT. Структура выглядит так:
Во-первых, у меня есть XSLT-файл, и в нем я объявил шаблон A, а внутри него я в основном перебираю каждую запись (строку) XML-файла, скажем, xml_A, и я объявил переменная для ссылки на конкретное поле с именем «id» текущей записи в xml_A. Затем в этом цикле for-each мне нужно вызвать другой шаблон B.
<xsl:template name="A">
<LoopA>
<xsl:for-each select="$xml_A//xml_A_row">
<xsl:variable name="id_A" select="id"/>
....
</LoopA>
<xsl:call-template name="B"/>
</xsl:template>
Для шаблона B я фактически создал другой файл XSLT в том же каталоге. B содержит миллионы записей из xml-файла "xml_B", но я хочу только те записи, в которых поле SAME id является текущей записью шаблона A. Вот как я это сделал:
<xsl:template name="B">
<LoopB>
<xsl:variable name="id_A" select="id"/>
...
</loopB>
</xsl:template>
А вот и мой вопрос. Я использовал выше <xsl:variable name="id_A" select="id"/>
для обращения к полю id текущей записи, в которой включен верхний цикл. Однако я не уверен, что это правильно, я провел некоторое тестирование, поскольку файл данных очень большой, поэтому визуально проверить, правильно ли он работает, нелегко.
Так что мне интересно, может ли кто-нибудь посоветовать правильность приведенной выше ссылки на переменную внешнего цикла, поскольку, если я ее удалю, редактор XML будет жаловаться.
Заранее спасибо.
Обновление от комментариев
Думаю, я не достаточно ясно дал понять.
На самом деле ни xml_A
, ни xml_B
не является
XML-файлы, которые будут XSLTed.
Это просто файлы данных, которые я буду
использовать для получения данных, и есть
другой файл XML C, который используется как для
применяя таблицу стилей, и это
пустой. Так в моей таблице стилей, используя
предоставить ответ, у меня должен быть способ
сделать это ссылаться на это хранилище данных
файл xml_A.