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šč | 5495 (2947) | jype |
| » | [Java]Shranjevanje/Branje nastavitev za povezavo z podatkovno bazoOddelek: Programiranje | 2963 (2737) | KernelPanic |
| » | getElementsByTagName ne dela v ChromuOddelek: Programiranje | 1847 (1585) | win64 |
| » | Izpis XML-ja z JSOddelek: Izdelava spletišč | 1806 (1749) | gnomee |
| » | C# - xml import v bazoOddelek: Programiranje | 1634 (1452) | nuclear |