将 XML Option 元素节点转换为 HTML Option 标记

发布于 2024-11-03 19:27:22 字数 573 浏览 5 评论 0原文

是否有直接将 Element 对象转换为 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]);
}

作为本机代码会很好^^ 注意:我不想使用任何库或框架。我想自己学习并做到这一点。

Is there a direct was to convert an Element Object to an HTMLOption Object?
Let's suppose I have this XML:

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

I want to insert each option in this select

Is there a way to just convert these XML to option directly or I have to then navigate the XML then get all information I need and then create a new Option and add that option to the select?
something like:

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

as a native code would be nice ^^
Note: I don't want to use any libraries or frameworks. I want do learn and do this by myself.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黯然 2024-11-10 19:27:22

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>

XSLT is made for XML to HTML conversion. Something like this will do the trick:

<?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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文