我正在使用XSLT 2.0从XHTML文件中提取数据。我想摆脱href
以外的所有属性。此版本的标识转换将删除所有属性。请注意,它不会复制任何属性,因为未使用@*
。
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
我尝试使用@*
并过滤href
,但它不起作用。
<xsl:template match="node()|@*[href]">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
我收到了消息The child axis starting at an attribute node will never select anything.
我也尝试过使用@*[@href]
和@*[href=@*]
之类的其他结构,并收到相同的消息。我使用的是Saxon HE 9.5.1.4。
我是否可以使用身份转换选择性地仅复制特定属性(及其值),还是必须以其他方式执行此操作?
答案 0 :(得分:2)
尝试:
<xsl:template match="node()|@href">
<xsl:copy>
<xsl:apply-templates select="node()|@href"/>
</xsl:copy>
</xsl:template>