powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как обратиться к обрабатываемому документу из цикла по загруженному дереву?
2 сообщений из 2, страница 1 из 1
Как обратиться к обрабатываемому документу из цикла по загруженному дереву?
    #34409213
Pilot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В xsl-преобразовании выполняется цикл по узлам загруженного документа (<xsl:variable name="var1" select="document('somefile.xml')"/>):

Код: plaintext
1.
2.
3.
<xsl:for-each select="$var1/somenodes">
...
</xsl:for-each>

Внутри цикла необходимо обратиться к узлам того xml-документа, который собственно обрабатывается данным xsl-файлом. Т.е. на который накладывается данный xsl-файл.

Код: plaintext
1.
select="/root_node/some_nodes"
не проходит, потому что вычисляется относительно загруженного somefile.xml.

Для чего мне это нужно - необходимо проверить факт наличия конкретного узла из somefile.xml в обрабатываемом xml-документе. Как это можно сделать? Что-то ничего в голову не приходит. (используется XSLT 1.0)
...
Рейтинг: 0 / 0
Как обратиться к обрабатываемому документу из цикла по загруженному дереву?
    #34409659
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я для себя, для простоты использую именованные шаблоны
Вот таким образом хожу по удаленному документу, оставаясь в контексте



****************ВЫЗОВ*****************
<xsl:call-template name="perenos">
<xsl:with-param name="pos" select="1"></xsl:with-param>
</xsl:call-template>

***************ИСПОЛЬЗОВАНИЕ*******************
<xsl:template name="perenos">
<xsl:param name="pos"/>

<xsl:if test="document('somefile')/root/element[$pos]">


***********
Тут выполняется условие... по идее ты должен остаться в том документе
который парсишь, то есть select="/root_node/some_nodes"
должен сработать
***********
<xsl:call-template name="perenos">
<xsl:with-param name="pos" select="$pos +1"></xsl:with-param>
</xsl:call-template>


</xsl:if>

</xsl:template>
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как обратиться к обрабатываемому документу из цикла по загруженному дереву?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]