2011-04-29 90 views
0

是否有直接将元素对象转换为HTMLOption对象的方法? 让我们假设我有这样的XML:将XML选项元素节点转换为HTML选项标签

<?xml version='1.0'?> 
    <options> 
     <option value="1">Hello1</option> 
     <option value="2">Hello2</option> 
    </options> 

我想插入每个选项在此选择

有没有办法,只是直接将这些XML来选择或我要,然后浏览XML,然后获取我需要的所有信息,然后创建一个新选项并将该选项添加到选择中? 类似:

var options = XmlCode.getElementsByTagName('option'); 
for(var i = 0; i < options.length; i++){ 
    selectBox.add(options[i]); 
} 

为本地代码将是很好的^^ 注:我不想使用任何库或框架。我想要自己学习并做到这一点。

回答

1

XSLT用于XML到HTML的转换。像这样的事情将做的伎俩:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<?xml-stylesheet type="text/xsl" href="select2option.xml" ?> 
<xsl:stylesheet version="1.0" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html="http://www.w3.org/1999/xhtml" 
      > 

<xsl:output method="html" encoding="utf-8" indent="yes" standalone="yes" media-type="text/html" omit-xml-declaration="yes" doctype-system="about:legacy-compat" /> 

<html:options> 
    <html:option name="foo">bar</html:option> 
</html:options> 

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

<xsl:template match="/"> 
<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
    </head> 
    <body> 
    <xsl:apply-templates/> 
    </body> 
</html> 
</xsl:template> 

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

<xsl:template match="html:option"> 
<option name="@name"> 
    <xsl:apply-templates /> 
</option> 
</xsl:template> 
</xsl:stylesheet>