复制 xml 节点时,如何复制所有属性并将它们设置为相同的值?
给定一个xml:
<schedule>
<owner>
<name>
<first>Eric</first>
</name>
</owner>
<appointment>
<when>
<date month="03" day="15" year="2001"/>
</when>
<subject>Interview potential new hire</subject>
</appointment>
</schedule>
改造后我想得到什么:
<schedule>
<owner>
<name>
<first>?</first>
</name>
</owner>
<appointment>
<when>
<date month="?" day="?" year="?"/>
</when>
<subject>?</subject>
</appointment>
</schedule>
这就是我所管理的:
<xsl:template match="*|@*">
<xsl:copy>
<xsl:if test="node() and not(*)">
<xsl:text>?</xsl:text>
</xsl:if>
<xsl:if test="not(node())">
<xsl:attribute name="???">?</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="*|@*" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
这些不起作用:
<xsl:attribute name="name(.)">?</xsl:attribute>
<xsl:attribute name="@*">?</xsl:attribute>
<xsl:attribute name="*">?</xsl:attribute>
<xsl:attribute name=".">?</xsl:attribute>
<xsl:if test="not(node())">
<xsl:text>?</xsl:text>
</xsl:if>
<xsl:if test="not(node())">
?
</xsl:if>
属性名称是否总是需要一个静态值?xslt 中有解决方法吗?