這可以用下面的XSLT來完成:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8"
indent="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="entry">
<xsl:copy>
<xsl:attribute name="field">
<xsl:value-of select="field"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="field"/>
</xsl:transform>
當施加到例如輸入XML
<entries>
<entry>
<field>field value 1</field>
</entry>
<entry>
<field>field value 2</field>
</entry>
</entries>
以下輸出產生:
<entries>
<entry field="field value 1"/>
<entry field="field value 2"/>
</entries>
模板匹配entry
<xsl:template match="entry">
個
複製entry
,並增加了作爲屬性的field
節點field
的值:
<xsl:copy>
<xsl:attribute name="field">
<xsl:value-of select="field"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
和匹配field
<xsl:template match="field"/>
是空的,並刪除field
節點的模板。
非常感謝! –