我正在使用XSLT 2.0將數據從XHTML文件中提取出來。我想擺脫除了href
之外的所有屬性。此版本的標識轉換將刪除所有屬性。請注意,它不會複製任何屬性,因爲不使用@*
。XSLT 2.0使用標識轉換過濾屬性
<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]
和@*[[email protected]*]
也試過,我也得到了同樣的信息。我正在使用Saxon HE 9.5.1.4。
我是否可以選擇性地僅使用標識轉換複製特定屬性(及其值),還是必須以另一種方式執行此操作?
你構建'@ * [HREF]'意思是 「選擇所有具有href元素作爲孩子的屬性」。撒克遜的警告告訴你,屬性沒有元素的孩子,所以這不是一個明智的要求。 –