我在进行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来解决这个问题。
为清晰起见编辑:无效数据是指节点中唯一的值是' - '字符。
答案 0 :(得分:2)
从身份转换开始,然后添加一个与您不想要的节点匹配的无操作模板,并忽略它们:
<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>