【问题标题】:DOM Parser - JavaScript not workingDOM 解析器 - JavaScript 不工作
【发布时间】:2014-10-19 23:05:04
【问题描述】:

所以通过 AJAX 请求我收到以下字符串:

  <eventos>
      <evento>
        <local>
          <cidade>Porto</cidade>
          <pais>Portugal</pais>
          <latitude>41.140082</latitude>
          <longitude>-8.622347</longitude>
        </local>
        <artistas>
          <artista>Future Islands</artista>
          <artista>Celebration</artista>
        </artistas>
      </evento>
      <evento>
        <local>
          <cidade>Porto</cidade>
          <pais>Portugal</pais>
          <latitude>41.140082</latitude>
          <longitude>-8.622347</longitude>
       </local>
       <artistas>
         <artista>Fujiya</artista>
         <artista>Rainy Days Factory</artista>
         <artista>O Manipulador</artista>
       </artistas>
     </evento>
   </eventos>

然后我继续使用 DOM Parser 像这样转换她:

var xmlDoc;
if (window.DOMParser) {
    parser = new DOMParser();
    xmlDoc = parser.parseFromString(response, "text/xml");
} else {
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = false;
    xmlDoc.loadXML(response);
}

但是,当我尝试像这样遍历其节点时:

var eventos = xmlDoc.getElementsByTagName('evento');
alert(eventos.length);

虽然我在 XML 中有 2 个,但它会打印 0。会发生什么?

【问题讨论】:

    标签: javascript xml parsing dom


    【解决方案1】:

    您需要某种计数器或数组,否则它会解析但不会累积任何信息。

    编辑:尝试类似

    eventosXML.evento.length();
    

    【讨论】:

    • 怎么样?可以发个例子吗?
    • @AndréSilva 试试上面的代码,看看它是否给了你合适的长度?
    • eventosXML 是什么?
    • 那不是包含evento的元素吗?
    • 具有字符串的变量称为“响应”。包含 XML 的文件称为“xmlDoc”,所以我不知道“eventosXML”是从哪里来的。
    猜你喜欢
    • 2012-03-21
    • 2011-12-15
    • 2022-11-23
    • 2010-11-26
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多