簡體   English   中英

無法解析 <link> 帶有dom的xml中的元素

[英]Cannot parse <link> element from xml with dom

我遇到了一個問題,它類似於以下問題:
無法獲取元素javascript Google Apps腳本

好吧,我正在使用DOM方法解析一個xml文件。直到將元素<link>放入xml之前,我沒有任何問題。 當我放置一個隨機鏈接時,我沒有問題。但是,如果我插入xml文件的真實鏈接之一,就會出問題。

Ι將您置於真正的鏈接之一: <link>http://www.metar.gr/index.php?option=com_jumi&fileid=12&Itemid=73&station=1483</link>

任何想法出了什么問題?

這是我的代碼:

downloadUrl("moredata.xml", function(data) {
      var items = data.documentElement.getElementsByTagName("item");
      for (var i = 0; i < items.length; i++) {
        var description = items[i].getElementsByTagName("description")[0].innerHTML;
        var temp        = items[i].getElementsByTagName("temp")[0].innerHTML;
        var title       = items[i].getElementsByTagName("title")[0].innerHTML;
        var windSpeed   = items[i].getElementsByTagName("windSpeed")[0].innerHTML;
        var dailyRain   = items[i].getElementsByTagName("dailyRain")[0].innerHTML;
        var latlng = new google.maps.LatLng(parseFloat(items[i].getElementsByTagName("glat")[0].innerHTML),
                                    parseFloat(items[i].getElementsByTagName("glon")[0].innerHTML));
       }
})

moredata.xml文件:

<item>
      <description>Giannena</description>
      <glat>39.62209843837158</glat>
      <glon>20.89027225971222</glon>
      <title>ipiros</title>
      <temp>-16.9°C</temp>
      <dailyRain>0.0 mm</dailyRain>
      <windSpeed>10 km/hr</windSpeed>
      <fire>2</fire>
      <outsideHumidity>88 %</outsideHumidity>
      <link>
        http://this_is_the_link.com
 </link>
  </item>
  <item>
      <description>Athina</description>
      <glat>38.08469095792561</glat>
      <glon>23.680233657360077</glon>
      <title>sterea</title>
      <temp>45°C</temp>
      <dailyRain>0.0 mm</dailyRain>
      <windSpeed>97  km/hr</windSpeed>
      <fire>3</fire>
      <outsideHumidity>99 %</outsideHumidity>
      <link>
    http://this_is_the_other_link.com
 </link>
  </item>

我猜發生了問題,因為您沒有正確解析XML響應...

嘗試這個 :

downloadUrl("moredata.xml", function(data) {
  xmlDoc=data.responseXML;
  var items = xmlDoc.documentElement.getElementsByTagName("item");

  for (var i = 0; i < items.length; i++) {
    var link = items[i].getElementsByTagName("link")[0].innerHTML;

  }
})

經過大量搜索后,我發現元素<link>的網址包含&字符->&。
&& )是xml的特殊字符。 所以我替換了' & '->' &amp; '。
但是我無法編輯動態xml文件
這是一個類似的問題: 如何在javascript中轉義xml實體?

我正在嘗試在我的JavaScript文件中創建一個函數,以替換dynamic,對於<link>元素的所有網址,“&”至“ &amp; '。
任何想法,建議,例子將不勝感激!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM