[ gooxy @ 17.02.2008. 01:48 ] @
Nov sam u svemu ovome i počeo sam nešto da učim i naiđo na problem koji nikako ne mogu da rešim. A problem je taj što mi se naredni kod ne prikazuje u pretraživaču struktuirano, već navodi neku grešku u parsiranju. Šta god radio greška se javlja pri definisanju xmlns atributa i to na znaku : Ja ne mogu da shvatim u čemu je problem. Ovim zoran sam želeo da napravim neku vrstu prefiksa koji bi kasnije koristio. Probao sam i da ga ne pišem svugde , i da pišem, ali opet, problem ostaje. Može li neko da ukaže na gešku?


<?xml version="1.0" xmlns:zoran="http://www.zoran.com" ?>
<zoran:knjiga>
<zoran:naslov>Postajanje nepostojeceg</zoran:naslov>
<zoran:poglavlje1>Uvod</zoran:poglavlje1>
<zoran:poglavlje2>Postojanost</zoran:poglavlje2>
<zoran:poglavlje3>Nepostojanost</zoran:poglavlje3>
<zoran:poglavlje4>Zakljucak</zoran:poglavlje4>
<zoran:autor>Zoran Milosevic</zoran:autor>
<zoran:supruga zvanje="doc.dr">Dragana Milosevic</zoran:mentor>
</zoran:knjiga>

[ mmix @ 17.02.2008. 11:10 ] @
Ok, kao prvo, imas gresku sa <zoran:supruga> tagom, zatvaras ga sa <zoran:mentor> sto nije ispravno, svaki tag mora da se zatvori istim takvim tagom.

Drugo, namsepaceovi ne mogu da se deklarisu u headeru XML filea, tj u <?xml>. Prvo mesto na kome mozes da deklarises namespace je root element.
Dakle:

Code:

<?xml version="1.0"?>
<zoran:knjiga xmlns:zoran="http://www.zoran.com">
  <zoran:naslov>Postajanje nepostojeceg</zoran:naslov>
  <zoran:poglavlje1>Uvod</zoran:poglavlje1>
  <zoran:poglavlje2>Postojanost</zoran:poglavlje2>
  <zoran:poglavlje3>Nepostojanost</zoran:poglavlje3>
  <zoran:poglavlje4>Zakljucak</zoran:poglavlje4>
  <zoran:autor>Zoran Milosevic</zoran:autor>
  <zoran:supruga zvanje="doc.dr">Dragana Milosevic</zoran:supruga>
</zoran:knjiga>


Jedna primedba, posto koristis samo jedan namespace, nemas potrebe za prefixima, mozes da iskoristis taj namespace kao default, a on se "nasledjuje" kroz pod tagove, i tako ce ti svi tagovi biti pod tim namespaceom:

Code:

<?xml version="1.0"?>
<knjiga xmlns="http://www.zoran.com">
  <naslov>Postajanje nepostojeceg</naslov>
  <poglavlje1>Uvod</poglavlje1>
  <poglavlje2>Postojanost</poglavlje2>
  <poglavlje3>Nepostojanost</poglavlje3>
  <poglavlje4>Zakljucak</poglavlje4>
  <autor>Zoran Milosevic</autor>
  <supruga zvanje="doc.dr">Dragana Milosevic</supruga>
</knjiga>



Jos jedna primedba, ako koristis "objekat" na vise mesta u xml fajlu, gledaj da ih uniformises radi kasnijeg lakseg pretazivanja kroz xpath. Npr, nemoj da stavis poglavlje1, poglavlje2 itd, nego napravi podtag i koristis poglavlje sa atributom:

Code:

<?xml version="1.0"?>
<knjiga xmlns="http://www.zoran.com">
  <naslov>Postajanje nepostojeceg</naslov>
  <poglavlja>
    <poglavlje broj="1">Uvod</poglavlje>
    <poglavlje broj="2">Postojanost</poglavlje>
    <poglavlje broj="3">Nepostojanost</poglavlje>
    <poglavlje broj="4">Zakljucak</poglavlje>
  </poglavlja>
  <autor>Zoran Milosevic</autor>
  <supruga zvanje="doc.dr">Dragana Milosevic</supruga>
</knjiga>


Sad mozes da iskoristis xpath /knjiga/poglavlja/poglavlje da izvuces sva poglavlja knjige, a /knjiga/poglavlja/poglavlje[@broj='3'] da izvuces trece poglavlje. Znaci, ne koristi imena tagova i atributa kao iteratore, nego za te svrhe koristi vrednosti istih, i zivot ce ti biti mnogo laksi kad dodjes do XPath-a i transformacija.

[ gooxy @ 17.02.2008. 14:35 ] @
Hvala puno. Bio sam se umrsio kao mače u klupko. Hvala i za dodatana pojašnjenja.
Pozdrav