繁体   English   中英

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

[英]How to create a dropdownlist from an XML file?

我被告知 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 所以默认情况下它没有被选中。

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

您可以使用 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" />&nbsp;&nbsp;<xsl:value-of select="." /></option>
      </xsl:for-each>
 </select

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM