如何从 XML 文件创建下拉列表?

发布于 2024-11-04 14:29:43 字数 698 浏览 1 评论 0原文

有人告诉我,HTML 可能会使用...

 <select> element with <option children>

并且为了获取属性的值以使用此代码,它可能会使用...

elementNode.attributes.item(0).nodeValue

这是我需要从中提取国家/地区和费率的 XML 文件格式。 .

<?xml version="1.0" encoding="utf-8" ?>
<exchangeRates>
<rate country="aud" >0.97</rate>
<rate country="usd" >1.01</rate>
</exchangeRates>

我需要下拉列表来显示国家和汇率,就像这样......

aud    0.97
usd    1.01

我真的很挣扎。我尝试在 asp.net 中执行此操作,但下拉列表只会显示一个值(aud、usd)。

一旦列表正常工作,我需要它默认显示“当前费率”,并且在显示列表时不会再次出现。还有一个 tabindex 1 或 2,因此默认情况下不会选择它。

非常感谢任何帮助/提示!

I've been told it's possible with HTML potentially using...

 <select> element with <option children>

And also in order to get the value of an attribute to use this code its possible to use...

elementNode.attributes.item(0).nodeValue

Here is XML file format I need to extract country and rate from..

<?xml version="1.0" encoding="utf-8" ?>
<exchangeRates>
<rate country="aud" >0.97</rate>
<rate country="usd" >1.01</rate>
</exchangeRates>

I need for the dropdownlist to show country and the rate exactly like this..

aud    0.97
usd    1.01

I'm really struggling. I tried doing in asp.net, but the dropdownlist will only show one value (aud, usd).

Once the lists are working, I need it to say by default "current rates" and have this not appear again when list is shown. Also a tabindex 1 or 2 so it's not selected by default.

Any helps/tips much appreciated!!

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

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

发布评论

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

评论(1

伴梦长久 2024-11-11 14:29:43

您可以使用 XSLT 将 XML 转换为 HTML 下拉列表。
这是 javascript:

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}

function displayResult()
{
xml=loadXMLDoc("rates.xml");
xsl=loadXMLDoc("dropdown.xsl");
// code for IE
if (window.ActiveXObject)
  {
  ex=xml.transformNode(xsl);
  document.getElementById("example").innerHTML=ex;
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  xsltProcessor=new XSLTProcessor();
  xsltProcessor.importStylesheet(xsl);
  resultDocument = xsltProcessor.transformToFragment(xml,document);
  document.getElementById("example").appendChild(resultDocument);

其中 rates.xml 是充满费率的 xml 文件,如上所示。

其中 dropdown.xsl 是您的 xsl 转换文件:

  <select>
      <xsl:for-each select="exchangeRates/rate">
     <option><xsl:value-of select="@country" />  <xsl:value-of select="." /></option>
      </xsl:for-each>
 </select

</xsl:template>
</xsl:stylesheet>

You could use XSLT to transform the XML to a HTML dropdown.
Here is the javascript:

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}

function displayResult()
{
xml=loadXMLDoc("rates.xml");
xsl=loadXMLDoc("dropdown.xsl");
// code for IE
if (window.ActiveXObject)
  {
  ex=xml.transformNode(xsl);
  document.getElementById("example").innerHTML=ex;
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  xsltProcessor=new XSLTProcessor();
  xsltProcessor.importStylesheet(xsl);
  resultDocument = xsltProcessor.transformToFragment(xml,document);
  document.getElementById("example").appendChild(resultDocument);

Where rates.xml is your xml file full of rates, like above.

Where dropdown.xsl is your xsl transform file:

  <select>
      <xsl:for-each select="exchangeRates/rate">
     <option><xsl:value-of select="@country" />  <xsl:value-of select="." /></option>
      </xsl:for-each>
 </select

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