2014-04-01 50 views
0

我如何轉換此XML如何將此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?

感謝您的幫助!

回答

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]"/> 
+0

非常感謝你。這對我來說真的很好! – Tintin81