2013-07-11 2 views

답변

123

last question에서 20 분 전에 GeoNames의 FindNearestAddress를 사용하여 찾은 XML을 구문 분석 (읽기 및 변환)하려고한다고 추측합니다.

당신의 XML은 txt라는 문자열 변수에이처럼 보이는 경우

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

을 그리고에서 특정 값을 얻을 :

<address> 
    <street>Roble Ave</street> 
    <mtfcc>S1400</mtfcc> 
    <streetNumber>649</streetNumber> 
    <lat>37.45127</lat> 
    <lng>-122.18032</lng> 
    <distance>0.04</distance> 
    <postalcode>94025</postalcode> 
    <placename>Menlo Park</placename> 
    <adminCode2>081</adminCode2> 
    <adminName2>San Mateo</adminName2> 
    <adminCode1>CA</adminCode1> 
    <adminName1>California</adminName1> 
    <countryCode>US</countryCode> 
</address> 

그런 다음이 같은 자바 스크립트 DOM으로 XML을 구문 분석 할 수 노드는 다음과 같습니다 :

//Gets house address number 
xmlDoc.getElementsByTagName("streetNumber")[0].childNodes[0].nodeValue; 

//Gets Street name 
xmlDoc.getElementsByTagName("street")[0].childNodes[0].nodeValue; 

//Gets Postal Code 
xmlDoc.getElementsByTagName("postalcode")[0].childNodes[0].nodeValue; 

JSFiddle

+2

jquery를 사용하면 'xmlDoc.getElementsByTagName ("streetNumber()) 대신'$ (xmlDoc) .find ('길 : eq (0) : eq (0) ") [0] .childNodes [0] .nodeValue; ' –

+0

매우 도움이 됨 Enigmadan thanks! – Andrew

+3

OP의 다른 질문의 답을 찾고 통합하면 내가 고수준 SO 게임이라고 부르는 것입니다. 나는 감명 받았다, 잘하게된다! – maryisdead

12

다음은 Internet Explorer 6을 포함하여 모든 주요 브라우저에서 XML 문자열을 XML 문서로 구문 분석합니다. 일단이를 사용하면 childNodes 및 getElementsByTagName()과 같은 일반적인 DOM 통과 메소드/속성을 사용하여 원하는 노드.

var parseXml; 
if (typeof window.DOMParser != "undefined") { 
    parseXml = function(xmlStr) { 
     return (new window.DOMParser()).parseFromString(xmlStr, "text/xml"); 
    }; 
} else if (typeof window.ActiveXObject != "undefined" && 
     new window.ActiveXObject("Microsoft.XMLDOM")) { 
    parseXml = function(xmlStr) { 
     var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); 
     xmlDoc.async = "false"; 
     xmlDoc.loadXML(xmlStr); 
     return xmlDoc; 
    }; 
} else { 
    throw new Error("No XML parser found"); 
} 

사용 예제 :

var xml = parseXml("<foo>Stuff</foo>"); 
alert(xml.documentElement.nodeName); 

내가 https://stackoverflow.com/a/8412989/1232175에서 얻었다.

관련 문제