Gå til innhold

Hente xml verdier med javascript


Anbefalte innlegg

Lurer litt på en ting. Har googlet rundt, men klarer ikke helt plukke ut fremgangsmåten.

 

Jeg har en servlet som gir følgende output:

 

<output>

<type>static</type>

<value>192.168.24.40</value>

</output>

 

 

Så har jeg en del av et Ajax script som skal hente ut disse to verdiene (static og 192.168.24.40).

Jeg har tidligere brukt output som dette fra servleten:

<value>192.168.24.40</value>

 

Da kunne jeg bruke denne:

function validateCallback(responseXML) {

var input = response.XML.getElementsByTagName("value")[0].firstChild.nodeValue;

...etc

 

 

Men når jeg utvider xml "treet" fra servleten, hvordan kan lage en linje til, som henter den andre verdien?

 

Noe i denne duren:

var type = response.XML.getElementsByTagName("type")[0].firstChild.nodeValue;

var value = response.XML.getElementsByTagName("value")[0].firstChild.nodeValue;

Dette funker selvsagt ikke :-)

 

Noen som har en ide om hvordan jeg får ut disse to verdiene?

Endret av formatted
Lenke til kommentar
Videoannonse
Annonse

Nei, det var en typo i det første innlegget, så taggen er altså lukket.

 

Hvis jeg sjekker output fra servleten, så poster den riktig. Så problemet mitt er å få snappet opp xml infoen.

 

Noen som vet hvordan ? :-)

Endret av formatted
Lenke til kommentar
Da kunne jeg bruke denne:

function validateCallback(responseXML) {

var input = response.XML.getElementsByTagName("value")[0].firstChild.nodeValue;

Jeg har ikke brukt xml i javascript før, men hvordan importerer du egentlig xml'en inn? Jeg tittet litt på en link: http://www.quirksmode.org/dom/importxml.html og den gjør det helt annerledes, for meg ser det ut som du tar inn responseXML, og plutselig bruker response.XML, jeg ville ikke satset på at getElementByTagName funker hvis det du egentlig gjør er å bruke getElementByTagName på en streng.

Lenke til kommentar
Da kunne jeg bruke denne:

function validateCallback(responseXML) {

var input = response.XML.getElementsByTagName("value")[0].firstChild.nodeValue;

Jeg har ikke brukt xml i javascript før, men hvordan importerer du egentlig xml'en inn? Jeg tittet litt på en link: http://www.quirksmode.org/dom/importxml.html og den gjør det helt annerledes, for meg ser det ut som du tar inn responseXML, og plutselig bruker response.XML, jeg ville ikke satset på at getElementByTagName funker hvis det du egentlig gjør er å bruke getElementByTagName på en streng.

Siden du linker til laster XML fra en lokal fil. Det er nok ikke det trådstarter er interessert i. Enig at det er merkelig bruk av responseXML og response.XML. Det hjelper nok å være litt konsekvent ;)

 

Jeg foretrekker JSON over XML siden det er mye enklere å jobbe med i javascript. Men hvis du er nødt til å bruke XML, må du parse responseText som du får fra AJAX-kallet ditt.

Det er ikke noe i veien for å bruke request.responseXML så lenge riktig MIME-type er sendt fra serveren. Hvis man sender XML som text/html må man bruke request.responseText og kjøre XML-parser etterpå. Sender man XML som application/xml kan man fint bruke request.responseXML. Med request mener jeg naturligvis XHR-objektet.

Endret av balletryne
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...