XSLT代码,用于在xml中搜索特定元素,并在搜索到的元素旁边添加一个新元素



我有一个XML文档,如下所示:

 <root>
      <child>
        <element1 name="name" type="string"></element1>
        <element1 name="id" type="string" ></element1>
         :
        <element2 source="s1" desc="d1"></element2>
         :
      </child>
    </root>

我必须在<element2>之前的<element1>旁边添加一个新元素(与element1同名(。如何编写xslt,以便在文件中添加一次新元素1。我试着用父类添加新元素,但它是在最后添加的。我想把它添加到下面相同的组名下面

<root>
  <child>
    <element1 name="name" type="string"></element1>
    <element1 name="id" type="string"></element1>
     :
    **<element1 name="new"></element1>**
    <element2 source="s1" desc="d1"></element2>
     :
 </child>
</root>

但我还是不能按我想要的方式。请帮帮我。

在第一个element2:之前添加新元素

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>
<xsl:template match="element2[1]">
    <element1 name="new"/>
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>
</xsl:stylesheet>

当然,这假设至少存在一个element2

相关内容

  • 没有找到相关文章

最新更新