Forum » Programiranje » XML parasanje z JS
XML parasanje z JS
tadejp81 ::
Pozdravljeni.
Delam na projektu, kjer je cilj, da bi se s pomočjo JS sestavila HTML struktura na podlagi XML dokumenta.
Naletel pa sem na težavo in sicer pri branju strukture XML datoteke.
Zamislil sem si XML datoteko, poenostavljeno, nekako v takšni obliki:
Teževo imam, ker mi ukaz xmlRoot.getElementsByTagName("title")[i].childNodes[0].nodeValue prebere vse node vrednosti ["Naslov H1", "Podnaslov H2"], jaz pa bi želel, da se preberejo samo elementi iz prvega nivoja, torej iz mojega primera ["Naslov H1"].
Torej želim, da mi getElementsByTagName("title")[i] gleda samo prvi nivo, oz. lahko pregleda tudi celoten dokument, vendar potrebujem informacijo potem o tem v katerem nivoju XML-ja se najden element nahaja, da ga lahko nadalnje obravnavam.
Hvala že v naprej za kakršen koli predlog.
Lep dan, Tadej
Delam na projektu, kjer je cilj, da bi se s pomočjo JS sestavila HTML struktura na podlagi XML dokumenta.
Naletel pa sem na težavo in sicer pri branju strukture XML datoteke.
Zamislil sem si XML datoteko, poenostavljeno, nekako v takšni obliki:
<level_0> <content> <title> Naslov H1 </title> <text> Glavna vsebina </text> </content> <level_1> <content> <title> Podnaslov H2 </title> <text> Glavna vsebina </text> </content> </level_1> </level_0>
Teževo imam, ker mi ukaz xmlRoot.getElementsByTagName("title")[i].childNodes[0].nodeValue prebere vse node vrednosti ["Naslov H1", "Podnaslov H2"], jaz pa bi želel, da se preberejo samo elementi iz prvega nivoja, torej iz mojega primera ["Naslov H1"].
Torej želim, da mi getElementsByTagName("title")[i] gleda samo prvi nivo, oz. lahko pregleda tudi celoten dokument, vendar potrebujem informacijo potem o tem v katerem nivoju XML-ja se najden element nahaja, da ga lahko nadalnje obravnavam.
Hvala že v naprej za kakršen koli predlog.
Lep dan, Tadej
youPlonker ::
Če ti tole kaj pomaga, uporabil sem parentNode:
txt = ""; var x = xmlRoot.getElementsByTagName("title"); for (i = 0; i < x.length; i++) { for (j = 0; j < x[i].childNodes.length; j++) { txt += x[i].parentNode.parentNode.nodeName + "<br />"; // <level_i> txt += x[i].parentNode.nodeName + "<br />"; // <content> } }
jernejl ::
Ja, s parentNode lahko preveriš, ali je dva nivoja višje vozlišče level_0.
Torej nekaj takega:
if (nekaj.parentNode.parentNode.nodeName=="level_0")
Mimogrede, ali ste razmislili o uporabi XSLT, ki je namenjen ravno transformaciji XML dokumentov?
Torej nekaj takega:
if (nekaj.parentNode.parentNode.nodeName=="level_0")
Mimogrede, ali ste razmislili o uporabi XSLT, ki je namenjen ravno transformaciji XML dokumentov?
tadejp81 ::
Hvala obema! To sem potreboval, da ugotovim kje se nahaja najdeno vozlišče. Jernej, za enkrat mi zadostuje to, tako da ne bom potreboval nic drugega v tej fazi.
Hvala še enkrat!
Lep pozdrav.
Hvala še enkrat!
Lep pozdrav.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Slo-Tech userscriptsOddelek: Izdelava spletišč | 5195 (2647) | jype |
» | [Java]Shranjevanje/Branje nastavitev za povezavo z podatkovno bazoOddelek: Programiranje | 2645 (2419) | KernelPanic |
» | getElementsByTagName ne dela v ChromuOddelek: Programiranje | 1687 (1425) | win64 |
» | Izpis XML-ja z JSOddelek: Izdelava spletišč | 1644 (1587) | gnomee |
» | C# - xml import v bazoOddelek: Programiranje | 1473 (1291) | nuclear |