Как обработать больше что один XML-документ в XSLT?

Там какой-либо прием должен соответствовать двум XML одним XSLT? Я имею в виду способ, которым я могу подать заявку, XSLT к параметру передал.

Например (я пропустил объявления, чтобы быть коротким). XML1: XML, который будет преобразован:

<myData>
   <Collection>

   </Collection>
</myData>

XSLT должен быть применен к предыдущему XML:

<xsl:param name='items' />
<xsl:template match='Collection'>
    <!-- some transformation here -->
</xsl:template>

XML2: Данные XML передали как параметр 'объекты':

<newData>
   <Item>1</Item>
   <Item>2</Item>
   <Item>3</Item>
</newData>

И я должен создать ряд узлов в узле 'Набора' в XML1 для каждого элемента 'Объекта' в XML2 с помощью XSLT. И я не знаю то, что XML2 содержит точно во время проектирования. Это сгенерировано во времени выполнения, таким образом, я не могу поместить его в XSLT, я знаю только его схему.

1
задан Dimitre Novatchev 12 May 2010 в 16:20
поделиться

2 ответа

(1). Вы можете сгенерировать XSLT вместо использования статического XSLT:

преобразовать xml2 с помощью xslt1, что приведет к xslt2
преобразовать xml1 с помощью xslt2, что приведет к желаемому результату

(2). Вы можете использовать функцию document () для загрузки xml2. Для этого требуется, чтобы xml2 сохранялся на диске или был доступен по uri.

      <xsl:copy-of select="document('xml2.xml')//newData" />  
1
ответ дан 3 September 2019 в 00:37
поделиться

Прочтите и используйте стандартную функцию XSLT document () .

1
ответ дан 3 September 2019 в 00:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: