Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

xpath pitanje: document(), namespace ...

[es] :: XML :: xpath pitanje: document(), namespace ...

[ Pregleda: 2978 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

utvara
Slobodan Utvić
Vivvo CMS lead developer, Spoonlabs
d.o.o. Beograd

Član broj: 677
Poruke: 87
*.nat-pool.nsad.sbb.co.yu.

Jabber: utvara@elitesecurity.org
ICQ: 28140625
Sajt: utvara.blogspot.com


Profil

icon xpath pitanje: document(), namespace ...01.10.2004. u 01:49 - pre 207 meseci
Jel zna neko zasto ovo ne radi??
<xsl:value-of select="document('lang/test.xml')/main/word[@id = @name]" />

@name je atribut iz trenutnog noda

Premostio sam problem sa
<xsl:variable name="aaa"><xsl:value-of select="@name" /></xsl:variable>
<xsl:value-of select="document('lang/test.xml')/main/word[@id = $aaa]" />

ali me interesuje da li ima neko elegantnije resenje?

Bonus pitanje za sto poena:

ako je test.xml

zaglavlje

<lang:main id="EN">
<word id="prezime">Last name</word>
</lang:main>

kako bi glasio select sa namespace-om???
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+4 Profil

icon Re: xpath pitanje: document(), namespace ...01.10.2004. u 17:11 - pre 207 meseci
to prvo ne radi, zato što taj select upoređuje @id atribut svake reči sa @name atributom iste reči, pa to neće nikad da poleti.. ;)

drugim rečima, moraš explicitno da navedeš da se @name ne odnosi na context node unutar xpath izraza već na tekući node unutar XSLTa. koliko ja poznajem XSLT (ne mnogo), ne znam za elegantniji način od ovog tvog..


a za bonus, select sa NSom je prost: /lang:main/word[@id=$name], stim da moraš prvo da registruješ "lang" NS prefix, jer se upoređivanje ne vrši sa prefixom, već sa kompletnim NSom (u prevodu, /x:main/word[@id=$name] je potpuno ekvivalentno prethodnom selectu ako je "x" prefix registrovan ka istom NSu kao i "lang" prefix u target xml dokumentu)

e sad, kako se u XPATHu registruju NS prefixi već zavisi od implementacije ili konkretne tehnologije u okviru koje se xpath koristi. pošto se ti zanimaš XSLTom, trebalo bi da je dovoljno da u XSL šablonu (recimo u root elementu) definišeš sve NS prefixe koje ćeš koristiti u XPATHu..

ili alternativno, imaš local-name() i namespace-uri() funkcije u XPATHu..
 
Odgovor na temu

[es] :: XML :: xpath pitanje: document(), namespace ...

[ Pregleda: 2978 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.