1
當我複製一個XML節點時,如何複製所有屬性並將它們設置爲相同的值?如何複製所有屬性並在複製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有沒有解決方法?