【问题标题】:Display multiple XML nodes into HTML将多个 XML 节点显示为 HTML
【发布时间】:2012-09-30 01:10:56
【问题描述】:

我正在尝试显示特定标签的所有节点,到目前为止,它确实过滤了我想要的数据,但只显示了一个节点。有人可以帮帮我吗?

这是 XML:

<?xml version="1.0" encoding="UTF-8"?>
<USA>
<NY>
  <Cell>NY Store 1</Cell>
   <Cell>NY Store 2</Cell>
  <Cell>NY Store 3</Cell>
</NY>
<CA>
  <Cell>CA Store 1</Cell>
   <Cell>CA Store 2</Cell>
  <Cell>CA Store 3</Cell> 
</CA>
</USA>

这是脚本:

<script>
function loadXMLDoc()
{
    var xmlhttp;
    var txt,x,i;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    xmlDoc=xmlhttp.responseXML;
    txt="";
    x=xmlDoc.getElementsByTagName("CA");
    for (i=0;i<x.length;i++)
    {
    xx=x[i].getElementsByTagName("Cell");
    }
    try
    {
    txt=txt + xx[0].childNodes[0].nodeValue + "<br />";
    }
    catch (er)
    {
    }
    document.getElementById("result").innerHTML=txt;
    }
    }
    xmlhttp.open("GET","stores.xml",true);
    xmlhttp.send();
}
</script>

这是 HTML:

<button type="button" onclick="loadXMLDoc()">California</button>
<div id="result">Please select your state</div>

正如我所说,它的文字很好,但它只显示了加利福尼亚州以下的一个元素。有任何想法吗?提前致谢!

【问题讨论】:

    标签: javascript html xml ajax


    【解决方案1】:

    xx 也是一个数组,所以你需要在 x 循环中再添加一个循环。

    try catch 需要在这个循环中。

    我不是很擅长 javascript,但如果你的语法是正确的。所以,我认为这可能有效(虽然我没有测试过):

    for (i=0;i<x.length;i++)
    {
        xx=x[i].getElementsByTagName("Cell");
        for(j=0;j<xx.length;j++) {
           try {
              txt=txt + xx[j].childNodes[0].nodeValue + "<br />";
           }
           catch(er) {
    
           }
        }
    }
    
    document.getElementById("result").innerHTML=txt;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      相关资源
      最近更新 更多