如何转换此XML
<products>
<entry>
<name handle="foo1">Foo1</name>
</entry>
<entry>
<name handle="foo2">Foo2</name>
</entry>
<entry>
<name handle="foo3">Foo3</name>
</entry>
</products>
进入此HTML
<input value="fields[address,foo1,foo2,foo3]" />
使用XSLT?
感谢您的帮助!
答案 0 :(得分:1)
尝试以下样式表:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:strip-space elements="*"/>
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:element name="input">
<xsl:attribute name="value"><xsl:text>fields[address,</xsl:text>
<xsl:for-each select="products/entry/name">
<xsl:choose>
<xsl:when test="position()!=last()">
<xsl:value-of select="@handle"/><xsl:text>,</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@handle"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:text>]</xsl:text>
</xsl:attribute>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
输出:
<input value="fields[address,foo1,foo2,foo3]"/>