Xml XSLT:如何防止重复元素

Xml XSLT:如何防止重复元素,xml,xslt,Xml,Xslt,我有以下xml(…省略了一些元素和属性): 我用元素Zeitbezug复制了这个xml: <root> ... <Auswertungsart Code="2"/> ... <Zeitbezug Code="3"/> <Zeitbezug Code="3"/> <Flaechenbezug Code="2"/> ... </root

我有以下xml(…省略了一些元素和属性):

我用元素
Zeitbezug
复制了这个xml:

   <root>
      ...
      <Auswertungsart Code="2"/>
       ...
      <Zeitbezug Code="3"/>
      <Zeitbezug Code="3"/>
      <Flaechenbezug Code="2"/>
      ...
    </root>

...
...
...
我该如何解决这个问题?
注意:
code
属性的值是通过参数
Zeitbezug

设置的,我怀疑问题出在您省略的XML中,例如,输入中是否有任何其他
AuswerTungStart
Flaechenbezug
元素?如果您在输入中只使用每个元素中的一个来运行测试,是否会得到所需的结果?否,两个元素只出现一次。我怀疑我插入的内容也用于selectNo的副本,输出树不参与输入处理。好吧,你没有向我们展示的东西是罪魁祸首。我在Oxygen中运行了您的XML(减去
行)和XSL,只得到一个
Zeitbezug
输出。是的,我真傻。改变了两次。。。但是,感谢您澄清输出树不参与输入处理我怀疑问题出在您省略的XML中,例如,输入中是否有其他
Auswertungsart
Flaechenbezug
元素?如果您在输入中只使用每个元素中的一个来运行测试,是否会得到所需的结果?否,两个元素只出现一次。我怀疑我插入的内容也用于selectNo的副本,输出树不参与输入处理。好吧,你没有向我们展示的东西是罪魁祸首。我在Oxygen中运行了您的XML(减去
行)和XSL,只得到一个
Zeitbezug
输出。是的,我真傻。改变了两次。。。但是,感谢您澄清输出树不参与输入处理
<xsl:stylesheet>
    <xsl:param name="Zeitbezug"/>

    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="Flaechenbezug">
        <xsl:choose>
            <xsl:when test="../Auswertungsart[not(@Code='1')]">
                <Zeitbezug Code="{$Zeitbezug}"/>
            </xsl:when>
            <xsl:otherwise>
                <Zeitbezug/>
            </xsl:otherwise>
        </xsl:choose>
        <xsl:copy-of select="."/>
    </xsl:template>

</xsl:stylesheet>
   <root>
      ...
      <Auswertungsart Code="2"/>
       ...
      <Zeitbezug Code="3"/>
      <Zeitbezug Code="3"/>
      <Flaechenbezug Code="2"/>
      ...
    </root>