---
title: "Hjälp med hämtning från XML-fil"
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/159160-hjälp-med-hämtning-från-xml-fil"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "Koplik"
published: "2007-04-12T08:59:21.000Z"
updated: "2007-04-12T20:26:35.000Z"
replies: 2
views: 529
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/xml/159160-hjälp-med-hämtning-från-xml-fil"
---

# Hjälp med hämtning från XML-fil

## #1 — Koplik, 2007-04-12T08:59Z

Hej!

Jag är ganska färsk på XML och försöker få in i min trånga skalle hur jag hämtar data på ett bra sätt utan att göra om min XML-fil med namespaces eller liknande. 

XML-filen ser ut på följande sätt

```
<School>
 <Coordinates Latitude="59.361934" Longitude="18.144178"/>
  <Area>
   <Name>Lidingö, Sweden</Name>
   <Description>Information om Lidingö i Sverige</Description>
 </Area>
 <Name>Rudbodaskolan, klass 2</Name>
 <Description>Information rörande Rudbodaskolan</Description>
</School>
```

Det jag vill göra är att hämta Namnet på skolan utan att ange position som jag gör för tillfället. (Använder mig av Javascript, men det ser väl likadant ut oavsett språk)
För att hämta rätt data idag så gör jag på följande sätt

```
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("School");

for (var i = 0; i < markers.length; i++) {
markers[i].getElementsByTagName("Area")[0].getElementsByTagName("Name")[0].firstChild.nodeValue;

//Hämtar namnet på skolan för att populera rullisten
var schoolName = markers[i].getElementsByTagName("Name")[1].firstChild.nodeValue;
```

Hämtningen av "Name" från "Area" fungerar någorlunda tillfredsställande då jag  alltid kommer att få ut rätt nod. Dock så när jag kör getElementsByTagName("Name") direkt under skolan så hämtar den även Name som ligger under Area. Vilket jag blir frustrerad över då jag måste ange position 1 istället för 0, och därmed gör det lätt att förstöra hämtningen om man ändrar i XML-filen.
Finns det något sätt att hämta Name som ligger direkt under \<School\> istället för att den hämtar alla instanser av Name oavsett hierarkisk position?

Jag skulle vilja ha något som t.ex. markers*.getElementByTagName("Name").firstChild.nodeValue; som enbart returnerar elementet som ligger direkt under \<School\>.

Ge mig också gärna tips och förslag på hur jag skulle kunna göra om XML-filen och hämtningar så att jag inte fortsätter jobba på vad jag förmodar är ett felaktigt sätt.*

Permalänk: https://www.webforum.nu/p/159160

## #2 — plup, 2007-04-12T20:21Z

har inte testat, men tänker i tankar om xpath...

```
var schoolName = xml.evaluate("//school/name", xml, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); 
schoolNameStr = schoolName.singleNodeValue.textContent;
alert(schoolNameStr);
```

tror inte riktigt jag greppar ditt problem, för sent på kvällen kanske.

Permalänk: https://www.webforum.nu/p/1958516

## #3 — Koplik, 2007-04-12T20:26Z

Tackar!

Det ser bra och rätt ut. Sen om det fungerar får vi se imorgon eller på tisdag då jag kan prova det :) 

I'll be back

Permalänk: https://www.webforum.nu/p/1958518

---

Tråden på webben: https://www.webforum.nu/amne/xml/159160-hjälp-med-hämtning-från-xml-fil
