2014-11-22 70 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> `