Как обработать XML-файл, указанный во входном XML, с помощью XSLT? - PullRequest
1 голос
/ 29 июля 2011

Предположим, у меня во входном XML-файле есть ссылка (URL) на другой XML-файл.Я хотел бы обработать этот XML-файл, на который ссылаются, как если бы это был ввод моей таблицы стилей / шаблона.Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Используйте стандартную функцию XSLT document(), например, :

<xsl:template match="someElementContainingURL">
 <xsl:apply-templates select="document(string(.))" mode="doc2"/>
</xsl:template>

В приведенном выше примере мы предполагаем, что в исходном XML-документе элемент с именем someElementContainingURL (замените его фактическим именем элемента в вашем конкретном XML-документе) содержит URL-адрес второго документа, который вы хотите обработать.

В шаблоне, соответствующем someElementContainingURL, мы применяем шаблоны к результату функции document() при передаче в качестве аргумента строкового значения текущего узла. Лучше всего организовать обработку второго документа в другом режиме, чтобы идентичные имена узлов и типы узлов из двух документов могли обрабатываться различными шаблонами, избегая конфликтов.

0 голосов
/ 29 июля 2011
<xsl:copy-of select="document('document.xml')/rootnode/subnode" />
<xsl:copy-of select="document('http://example.com/document.xml')/rootnode/subnode" />
...