Xml 使用XLST复制选定节点和子节点

Xml 使用XLST复制选定节点和子节点,xml,xslt,Xml,Xslt,我在XSLT转换方面遇到了问题,希望有人能帮我解决。 这是我正在处理的数据结构 <excelFiles> <sheet> <row index='1'> <column_1>allowedValue</column_1> <column_2>US</column_2> <column_3>allowedV

我在XSLT转换方面遇到了问题,希望有人能帮我解决。 这是我正在处理的数据结构

<excelFiles>
    <sheet>
        <row index='1'>
            <column_1>allowedValue</column_1>
            <column_2>US</column_2>
             <column_3>allowedValue</column_3>
        </row>
        <row index='1'>
           <column_1>notAllowedValue</column_1>
           <column_2>US</column_2>
           <column_3>allowedValue</column_3>
        </row>
  </sheet>
</excelFiles>

允许值
美国
允许值
不允许值
美国
允许值
我试图做的只是复制没有子节点包含无效数据的行。使用XSLT可以做到这一点吗?我只能使用XSLT来解决这个问题


为清晰起见进行编辑:当节点中唯一的值是“-”字符时,无效数据。

从标识转换开始,然后添加与不需要的节点匹配的无操作模板并忽略它们:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- ignore any row element that has any child element whose text value is
       a single hyphen -->
  <xsl:template match="row[* = '-']" />

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

这正是我想要的,我的主要问题是在副本之后有我的匹配模板。谢谢。