是否直接将元素对象转换为HTMLOption对象? 我们假设我有这个XML:
<?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]);
}
作为本机代码会很好^^ 注意:我不想使用任何库或框架。我想自己学习并做到这一点。
答案 0 :(得分: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>