[ MilosDj @ 16.09.2010. 13:16 ] @
Da krenemo redom:


1. Pretraga ucitanog xml fajla. Ja znam za ove 3 funkcije za pretragu.

getElementById('id') // by id attribute
getElementByName('name') // by name attribute
getElementsByTagName('p') // by <tag_name>

a) Da li id mora da bude jedinstven za ceo xml dokument?
Negde pise da mora, sto mi je i logicno jer vraca samo jedan element. Ali negde se pominje da mora da bude jedinstven samo za iste tagove: Npr:
<p id="1" /><n id="1" />

b) Ako isti id moze da ide u vise tagova, sta je onda rezultat?

c) Isto pitanje za getElementsByName. Da li je name atribut jedinstven za ceo xml dokument ili ne?


2. Da li se sve te funkcije mogu validno upotrebljavati za html DOM?
Npr: document.getElementById, document.getElementByName, document.getElementsByTagName?
I teoriji trebalo bi da je tako, ali bolje da pitam.


3. Kako pravite xPath pretragu u js?
Prvenstveno me zanima da dobijem listu nodova koji imaju isti atribut. Sto je smesno za xpath.
Jedini nacin koji imam za js je:
Code:
var elements =  xml.getElementsByTagName("tag");
for(,,){
if (elements[i].hasAttribute("aaa")) {ima;radi;}else{nema;}
}
I onda to ponovim za svaki tagName... Jel ima nesto bolje? Jednostavnije, univerzalnije.
[ Nikola Poša @ 17.09.2010. 17:04 ] @
Evo da probam da odgovorim na prvi deo tvog post-a... Atribut id bi trebao da bude jedinstven, ali u slučaju da više elemenata deli isti id, funkcija getElementById() će vratiti samo prvi element na koji naiđe u pretrazi. Što se name atributa tiče, tu ne bi trebalo da bude ništa sporno, jer ako postoji više elemenata sa istom vrednošću tog atributa, funkcija getElementsByName() će vratiti niz. Zato se i zove getElementsByName (množina). Ista logika je i sa funkcijom getElementsByTagName().
[ MilosDj @ 18.09.2010. 15:14 ] @
Hvala na odgovoru.
U pravu si za getElementsByName. To jeste mnozina i ona treba da vraca niz!

No, ili ja mnogo gresim ili getElementById radi samo i jedino za window.document a ne za ucitan xml file!

Kad god primenim getElemById na fajlu, rezultat mi je null
Da li gresim u kodiranju ili to zaista ne radi na xml fajlu?

EDIT:

X HTLM DOM
x.getElementById(id) -- by id attribute
x.getElementsByName(name) -- by name attribute
x.getElementsByTagName(name) -- by tag name <div> <p>


XML DOM
x.getElementsByTagName(name) -- by tag name <div> <p>

Nije svejedno

[Ovu poruku je menjao MilosDj dana 18.09.2010. u 17:41 GMT+1]

[Ovu poruku je menjao MilosDj dana 18.09.2010. u 17:42 GMT+1]