【问题标题】:processing xml list into HTML将 xml 列表处理成 HTML
【发布时间】:2013-02-08 08:43:49
【问题描述】:

我希望有人能够帮助我,我是 javaScript 和 XML 的新手,目前我正在尝试将产品的 xml 列表处理为我的 HTML 页面中的 ul 列表。我想从 xml 中获取所有产品并将它们显示为页面上的 li 元素。我已经设法编写代码来遍历 xml,但它只返回 xml 列表中的最后一个产品。我怎么能得到所有的产品?欢迎任何建议。到目前为止我的代码:

    <script>
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","product.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 


var x=xmlDoc.getElementsByTagName("product");
for (i=0;i<x.length;i++)
  { 
  liOpen=("<li><p>");
  title=(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
  divOpen=("</p><div class='prod-sq-img'>");
  image=(x[i].getElementsByTagName("imgfile")[0].childNodes[0].nodeValue);
  closingTags=("</div></li>");
  txt=  liOpen +  title + divOpen + image + closingTags ;
document.getElementById("ulList").innerHTML=txt;
  }


        </script>

感谢您的帮助

我的其他代码工作正常,它从列表中获取所有产品,但我需要将它传递到 DIV,有什么想法吗?

document.write("<ul class='prod-sq'>");
var x=xmlDoc.getElementsByTagName("product");
for (i=0;i<x.length;i++)
  { 
  document.write("<li><p>");
  document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
  document.write("</p><div class='prod-sq-img'>");
  document.write(x[i].getElementsByTagName("imgfile")[0].childNodes[0].nodeValue);
  }
document.write("</ul>");

【问题讨论】:

标签: javascript html xml


【解决方案1】:

我认为更改以下行将解决问题。

document.getElementById("ulList").innerHTML+=txt;

【讨论】:

    【解决方案2】:

    试试这个..

         var liOpen=("<li><p>");
          var divOpen=("</p><div class='prod-sq-img'>");  
          var closingTags=("</div></li>");
        var txt;
        var image;
        var title;
    var y=xmlDoc.getElementsByTagName("product");
        for (j=0;j<y.length;j++)        {
        var x=xmlDoc.getElementsByTagName("product");
        for (i=0;i<x.length;i++)
          { 
          title=(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
          image=(x[i].getElementsByTagName("imgfile")[0].childNodes[0].nodeValue);
          txt=  liOpen +  title + divOpen + image + closingTags ;
          }
    
        document.getElementById("ulList").innerHTML=txt;  }
    

    【讨论】:

    • 您好,感谢您发布答案,不幸的是,代码仍然只生成 xml 列表中的最后一项;(
    • 还是一样,基本上我有其他版本的相同代码可以产生正确的输出(从 xml 获取所有产品)我需要将输出传递到 div 其他代码:文档。 write("
        "); var x=xmlDoc.getElementsByTagName("product"); for (i=0;i

        "); document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue); document.write("

        "); document.write(x[i].getElementsByTagName("imgfile")[0].childNodes[0].nodeValue); } document.write("");
    猜你喜欢
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 2016-07-01
    • 2017-03-06
    • 2011-06-20
    • 1970-01-01
    • 2015-05-18
    • 2023-03-28
    相关资源
    最近更新 更多