» »

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:
<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?

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.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Slo-Tech userscripts

Oddelek: Izdelava spletišč
174955 (2407) jype
»

[Java]Shranjevanje/Branje nastavitev za povezavo z podatkovno bazo

Oddelek: Programiranje
192396 (2170) KernelPanic
»

getElementsByTagName ne dela v Chromu

Oddelek: Programiranje
141582 (1320) win64
»

Izpis XML-ja z JS

Oddelek: Izdelava spletišč
81503 (1446) gnomee
»

C# - xml import v bazo

Oddelek: Programiranje
71350 (1168) nuclear

Več podobnih tem