2014-11-22 44 views
0

問題是,當我將下拉列表的代碼保存在.xsl文件中時,在瀏覽器中打開我的.xml文件後,屏幕上出現.xml文件的所有文本輸出。我在下拉列表中工作之前的所有輸出都已消失,並由大量文本取代。我需要下拉列表來顯示所有使用xsl編輯的內容。對於下拉列表如何使用xslt和xml製作下拉菜單?

XML代碼:

<selectlist> 
    <selectName num="1"> 
     <memberName>Slash</memberName> 
    </selectName> 
    <selectName num="2"> 
     <memberName>Axl</memberName> 
    </selectName> 
    <selectName num="3">  
     <memberName>Duff</memberName> 
    </selectName> 
    <selectName num="4"> 
     <memberName>Izzy</memberName> 
    </selectName> 
    <selectName num="5"> 
     <memberName>Steven</memberName> 
    </selectName> 
    <selectName num="6"> 
     <memberName>Matt</memberName> 
    </selectName> 
    <selectName num="7">  
     <memberName>Gilby</memberName> 
    </selectName> 
    <selectName num="8"> 
     <memberName>Ashba</memberName> 
    </selectName> 
    <selectName num="9"> 
     <memberName>Josh</memberName> 
    </selectName> 
    <selectName num="10"> 
     <memberName>Buckethead</memberName> 
    </selectName> 
</selectlist> 

XSL代碼(粗體部分負責下拉菜單):

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 

<xsl:template match="/"> 
    <xsl:apply-templates/> 
</xsl:template> 

<xsl:template match="*"> 
    <xsl:apply-templates/> 
</xsl:template> 

<xsl:template match="text()"> 
    <xsl:apply-templates/> 
</xsl:template> 


<xsl:for-each select="/selectlist/selectName"> 
    <option VALUE="{memberName}"> 
     <xsl:value-of select="memberName"/> 
    </option> 
</xsl:for-each> 

</xsl:stylesheet> ` 

請原諒我,如果我確實有不注意到一些明顯的東西,我只是網絡開發的初學者,而xslt給我一個很難的時間。幫助將非常感謝!

回答

0

您不能只將for-each放在樣式表中,它需要成爲模板的一部分。

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 

<xsl:template match="/selectlist"> 
    <xsl:for-each select="selectName"> 
     <option VALUE="{memberName}"> 
      <xsl:value-of select="memberName"/> 
     </option> 
    </xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> `