나는 parse an xml file
을 (를) 찾으려고합니다. function downloadUrl
을 사용하고 있습니다. 내 xml 파일의 <link>
요소에 '&'(앰퍼샌드 문자)가 포함 된 URL이 포함되어 있습니다. 브라우저의 오류 메시지 : "null '의'documentElement '속성을 읽을 수 없습니다. 을 &
으로 바꿉니다. my xml과 비슷한 샘플 파일에서 구문 분석을 실행합니다. 중요한 정보 : 내 xml을 편집 할 수 없습니다. 파일. 그래서,이 솔루션은 내가 상상하는 것을 좋아 .Something &
와 함께이 문자를 &
를 대체하는 함수 자바 스크립트 코드를 삽입하는 것입니다자바 스크립트에서 xml 파일의 URL을 구문 분석 할 수 없습니다.
function htmlEscape(items) {
return String(items)
.replace(/&/g, '&');
}
을하지만 난 그 작업을 수행하는 방법에 대한 방법을 찾을 수 없습니다. 여기 내 스크립트입니다
var infowindow;
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(38.822590,24.653320);
var myOptions = {
zoom: 6,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
downloadUrl("moredata.xml", function(doc) {
var items = doc.documentElement.getElementsByTagName("item");
for (var i = 0; i < items.length; i++) {
var description = items[i].getElementsByTagName("description")[0].textContent;
var temp = items[i].getElementsByTagName("temp")[0].textContent;
var title = items[i].getElementsByTagName("title")[0].textContent;
var link = items[i].getElementsByTagName("link")[0].textContent;
var latlng = new google.maps.LatLng(parseFloat(items[i].getElementsByTagName("glat")[0].textContent),
parseFloat(items[i].getElementsByTagName("glon")[0].textContent));
내 XML의 일부 :
<channel>
<title>
Real time weather in Greece
</title>
<link>http://www.123.gr/</link>
<image>
<url>
http://www.123.gr/templates/metar/images/metar.gif
</url>
<title>123.gr</title>
<link>http://www.123.gr/</link>
</image>
<description>
Real time weather in Greece
</description>
<language>el</language>
<pubDate>Thu, 03 Apr 2014 17:08:10 +0300</pubDate>
<copyright>123.gr</copyright>
<managingEditor>[email protected]</managingEditor>
<webMaster>[email protected]</webMaster>
<item>
<title>Center</title>
<description>Salonica</description>
<link>
http://www.metar.gr/index.php?option=com_jumi&fileid=12&Itemid=73&station=1227
</link>
<temp>16.7 °C</temp>
<glat>40.422726139672626</glat>
<glon>22.93392777442932</glon>
</item>
</channel>
downloadUrl
기능 :
function downloadUrl(url, callback) {
var status = -1;
var request = createXmlHttpRequest();
if (!request) {
return false;
}
request.onreadystatechange = function() {
if (request.readyState == 4) {
try {
status = request.status;
} catch (e) {
// Usually indicates request timed out in FF.
}
if (status == 200) {
callback(request.responseXML, request.status);
request.onreadystatechange = function() {};
}
}
}
request.open('GET', url, true);
try {
request.send(null);
} catch (e) {
changeStatus(e);
}
};
다음은 문자를 대체하는 또 다른 질문입니다. http : //stackoverflow.com/questions/11555890/how-to-parse-xml-with-special-character-specifically-for-ampersand – jwatts1980
@ jwatts1980. 응답 해 주셔서 감사합니다! 여러 번 여러 번 시도해 봤지만 결과가 없었습니다. 저에게 보여 줄 수 있습니까? – marYOs
Rob M.의 대답은 그 점을 설명합니다. – jwatts1980