我有一个xsl,其片段如下所示:
/lib/i386-linux-gnu/libc.so.6
但是,我需要它复制除了类型值为“RECORD”的组以外的所有组。我该怎么做呢?我可以使用XSL 1.0和2.0,首选1.0。源文件包含数千个组,具有4-5个不同的类型值。我希望代码只选择那些没有typevalue RECORD的组。
这是一个应该被过滤掉的示例组:
<xsl:template match="group">
<xsl:element name="group">
<xsl:copy-of select="*"/>
</xsl:element>
</xsl:template>
非常感谢所有人和任何帮助!
答案 0 :(得分:1)
如果您使用
<xsl:template match="/*">
<xsl:copy>
<xsl:copy-of select="//group[not(grouptype/typevalue[level = 0] = 'RECORD')]"/>
</xsl:copy>
</xsl:template>
您复制那些没有group
后代typevalue
的{{1}}元素。
或者,如果您想使用身份转换模板复制所有内容,请反转条件以避免使用空模板复制要消除的元素
RECORD
答案 1 :(得分:0)
从字面上理解你的问题,该要求的最直接的XSLT表示是有两个模板规则:
<xsl:template match="*[everything()]" priority="10">
..
</xsl:template>
<xsl:template match="*[something()]" priority="20"/>
即匹配&#34;某事物&#34;的规则。什么也不做,以及一个匹配&#34;一切&#34;的低优先级规则。并做了一些事情。