У меня есть входной XML-документ примерно такой:
<text>
<p>
Download the software from <link id="blah">
</p>
</text>
<links>
<link id="blah">
<url>http://blah</url>
</link>
</links>
И я хотел бы, чтобы мой выходной документ был:
<text>
<p>
Download the software from <a href="http://blah"> http://blah </a>
</p>
</text>
То есть: я хочу скопировать существующие узлы входного документа как есть, но также заменить некоторые узлы (например) расширенной версией: на основе другой информации, содержащейся во входном документе.
Я пытался использовать xsl: copy для первой копии во фрагменте следующим образом:
<xsl:variable name="frag">
<xsl:copy-of select="text"/>
</xsl:variable>
Но когда я вывожу переменную следующим образом:
<xsl:value-of select="$frag">
Вывод не отображает теги абзаца? Так что я не уверен, что xsl-copy скопировала узлы или просто текст как-то?
Если я добавлю только следующее (удалите xsl: variable 'wrapper'), он сохранит теги в выходном документе?
<xsl:copy-of select="text"/>
Но, конечно, мне нужно сначала переназначить этот тег 'link' на тег привязки ....
Я даже не начал выяснять, как заменить содержимое переменной (в новой переменной, разумеется) информацией о ссылке ...