Как вставить XML в другой файл XML с помощью XSLT?
Я посмотрел на эту ветку, чтобы узнать, как вставить XML в XML с помощью XSLT Вставить узел XML в определенную позицию существующего документа.
Но у меня есть проблема, так как мне нужно вставить XML между двумя большими дочерними узлами. Например я хочу вставить <s>...</s>
между <r>...</r>
а также <t>...</t>
в этом файле
<root>
<child1>
<a>...</a>
<r>...</r>
<t>...</t>
<z>...</z>
</child1>
</root>
создать этот файл
<root>
<child1>
<a>...</a>
<r>...</r>
<s>...</s>
<t>...</t>
<z>...</z>
</child1>
</root>
Спасибо за вашу помощь.
1 ответ
Стандартное "преобразование идентичности" плюс один шаблон для соответствия элементу <r>
и вставить <s>...</s>
впоследствии:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="r">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
<s>...</s>
</xsl:template>
</xsl:stylesheet>