좋아요 자바에서 get 요청으로 XML을 구문 분석하려고합니다. 이 내가 나중에 액세스 할 수 있도록 결과 VAR에서Javascfipt에서 XML 구문 분석
(내가 가진 구글지도 마커를 건물입니다) 배열로 마커를 밀어하려고
<markers>
<marker>
<name>
<![CDATA[ Pan Africa Market ]]>
</name>
<address>
<![CDATA[ 1521 1st Ave, Seattle, WA ]]>
</address>
<lat>47.608940</lat>
<lng>-122.340141</lng>
<price>150</price>
<type>restaurant</type>
</marker>
</markers>
같은 XML 보이는 방법이다 나는 GET 요청의 응답 (이 완벽하게 작동하고 나는 "params.length"을 경고 할 수 있습니다 원인 내가 그것을 알고)
var result = this.responseText;
var xml = Ti.XML.parseString(result);
var items = xml.documentElement.getElementsByTagName("marker");
var name = xml.documentElement.getElementsByTagName("name");
var value = xml.documentElement.getElementsByTagName("address");
var data = [];
for (var i=0;i<items.length;i++) {
alert(items.item(i).getElementsByTagName("price").item(0).text);
}
내가 (물론 1 일) 항목의 가격을 경고 할 수 저장하지만, 질문은 나중에 저장할 수 있도록 저장하는 방법입니다. 빨간 부분은 for 루프의 데이터 변수에 넣어야하지만 그 방법은 모른다.
미리 감사드립니다. PD Im Appcelerator에서 사용하고 있습니다.
이var markers = xml.documentElement.getElementsByTagName("marker");
var data = [];
for (var i=0;i<markers.length;i++) {
console.log(markers[i].getElementsByTagName("name")[0]);
data.push({
name: markers[i].getElementsByTagName("name")[0].textContent,
address: markers[i].getElementsByTagName("address")[0].textContent
})
}
// data is now [{name: "...", address: "..." }]
작업 바이올린 참조 : 자바 스크립트에서 DOM 구조를 탐색에 대한 자세한 내용은 http://jsfiddle.net/nrabinowitz/XZnXn/
을, 당신은 MDN DOM Reference보고 할 수 있습니다
저는 질문과 몇 가지 의견이 있습니다. TI는 무엇입니까 (귀하의 게시물을 AppCelerator로 태그 했으므로, 그와 관련이 있다고 가정하고 있습니다)? 'getElementsByTagName'을 사용하면 단일 값이 아닌 배열이됩니다. 지정한 이름을 가진 단 하나의 태그가있을 수 있지만 배열 (사실 노드 목록에 있음)에있을 것입니다. 같은 '인덱스'에 '이름'과 '값'을 모두 저장하기 때문에 '데이터'배열은 2D이거나 객체를 포함해야합니다. – Abbas