XSLT标记属性正在丢失

XSLT标记属性正在丢失,xslt,xslt-1.0,xslt-2.0,xslt-grouping,Xslt,Xslt 1.0,Xslt 2.0,Xslt Grouping,输入XML <?xml version="1.0" encoding="UTF-8"?> <web-inf metadata-complete="true"> <A> <A1>DGDDG</A1> <A1>TYTY</A1> </A> </web-inf> 当我应用转换时,O/p XML只是转储标记,没有元数据complete=true,即如下

输入XML

<?xml version="1.0" encoding="UTF-8"?>
<web-inf metadata-complete="true">
    <A>
       <A1>DGDDG</A1>
       <A1>TYTY</A1>
    </A>
</web-inf>
当我应用转换时,O/p XML只是转储标记,没有元数据complete=true,即如下所示

<?xml version="1.0" encoding="UTF-8"?>
<web-inf>
    <A>
       <A1>DGDDG</A1>
       <A1>TYTY</A1>
    </A>
</web-inf>
我的XSLT转换文件在开头有以下内容

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.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="web-inf[not(A/A1='hello')]">
    <xsl:copy>
        <xsl:call-template name="XXX"/>
        <xsl:apply-templates />
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>
不知道这里出了什么问题。 有什么建议吗?

只复制当前节点,而不复制任何属性或子节点。您已经在为与等效的子节点提供服务,但还需要单独处理选择属性的操作

<xsl:template match="web-inf[not(A/A1='hello')]">
    <xsl:copy>
        <xsl:apply-templates select="@*" />
        <xsl:call-template name="XXX"/>
        <xsl:apply-templates />
    </xsl:copy>
</xsl:template>

您能否共享从XSLT调用的模板XXX中编写的代码?是的。以下是XXX 1 2 3 4@TestUser中的代码-请不要使用注释获取问题中的其他信息。编辑问题以包含信息。