[英]Cannot parse <link> element from xml with dom
I'm having a problem and it's similar to this question : 我遇到了一个问题,它类似于以下问题:
Can't get element javascript google apps script 无法获取元素javascript Google Apps脚本
Well , i'm parsing an xml file with the DOM
method.I didn't have any problem until i push in my xml the element <link>
. 好吧,我正在使用DOM
方法解析一个xml文件。直到将元素<link>
放入xml之前,我没有任何问题。 When i put a randomized link i have no problem.But if i insert one of my real links of my xml file something goes wrong. 当我放置一个随机链接时,我没有问题。但是,如果我插入xml文件的真实链接之一,就会出问题。
Ι collocate you one of the real links : <link>http://www.metar.gr/index.php?option=com_jumi&fileid=12&Itemid=73&station=1483</link>
. Ι将您置于真正的链接之一: <link>http://www.metar.gr/index.php?option=com_jumi&fileid=12&Itemid=73&station=1483</link>
。
Any ideas what is going wrong? 任何想法出了什么问题?
Here's is my code : 这是我的代码:
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));
}
})
and the moredata.xml
file : 和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>
I guess the problem is happening because you're not parsing the XML response correctly... 我猜发生了问题,因为您没有正确解析XML响应...
Try this : 尝试这个 :
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;
}
})
After a lot of searching i find out that in the element <link>
the url contains ampersand character --> &. 经过大量搜索后,我发现元素<link>
的网址包含&字符->&。
Ampersand( &
) is a special character for xml. “ &
( &
)是xml的特殊字符。 So i replaced ' &
' --> ' &
所以我替换了' &
'->' &
' . '。
But i cannot edit the dynamic xml file . 但是我无法编辑动态xml文件 。
Here is a similar question : how to escape xml entities in javascript? 这是一个类似的问题: 如何在javascript中转义xml实体?
I'm trying to create a function in my javascript file to replace dynamic , for all url's of the <link>
elements the ' & ' to ' &
我正在尝试在我的JavaScript文件中创建一个函数,以替换dynamic,对于<link>
元素的所有网址,“&”至“ &
'. '。
Any ideas , suggestions , examples would be appreciated! 任何想法,建议,例子将不胜感激!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.