如何使用XSLT将XML插入另一个XML文件?

时间:2010-05-25 17:55:40

标签: xml xslt insert

我查看了这个帖子,了解如何使用XSLT Insert XML node at a specific position of an existing document

将XML插入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 个答案:

答案 0 :(得分:2)

标准的“身份转换”加上一个匹配元素<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>