使用下列transformation:
如果node name已经是以no:开头,则给该节点加上attribute elementFormDefault,其value为"qualified".
否则将所有节点的name加上前缀n0:
<xsl:transform
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style"
version="1.0">
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="node()">
<xsl:choose>
<xsl:when test="starts-with(name(),'n0:')">
<xsl:element name="{name()}">
<xsl:attribute name="elementFormDefault">
qualified
</xsl:attribute>
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:when>
<xsl:when test="name()=''">
<xsl:value-of select="."/>
<xsl:copy-of select = "@*"/>
</xsl:when>
<xsl:otherwise>
<xsl:element name="{concat('n0:', name())}">
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:transform>
执行transformation之后的xml:
superZidan
JavaScript
React.js
- 4.4w
-
Jervis_cen
CI/CD
Node.js
- 25.2w
-
waynaqua
Spring Boot
掘金·金石计划
- 3389
-
李瑞丰_liruifengv
ChatGPT
Vue.js
- 11.2w
-
程序员摩根
JavaScript
Vue.js
- 10.9w
-
嵌入式视觉
掘金·日新计划
ChatGPT
- 36.5w
-
程序员老鱼
掘金·日新计划
ChatGPT
OpenAI
- 3.4w
-
zxg_神说要有光
JavaScript
Node.js