OmniXML XPath

Vse drugo, kar ne spada v nobeno zgornjo kategorijo.
Odgovori
cLuBbY
Prispevkov: 58
Pridružen: 11.07.2007 09:17:39

OmniXML XPath

Odgovor Napisal/-a cLuBbY » 06.07.2010 13:54:52

Prišel sem do ene izmed večjih omejitev knjižnice

recimo da je dokument takšen:

Koda: Izberi vse

 
<lib>
  <docs>
    <doc>
      <key1>test</key1>
      <key2>test2</key2>
   </doc>
   <doc>
    ...
   </doc>
  </docs>
</lib>
 
V praksi bi lahko naslavljal node nekako takole:

Koda: Izberi vse

 /lib/docs/doc[key1="test1"] 
Ampak pravi omnixml xpath da je to unsuported predicate, koliko sem videl je to implementirano samo za atribute. Mi lahko nekdo vsaj približno opiše kaj bi bilo še potrebno spremenit v omnixml knjižnici (bi popravil sam) da bi iskal še po vrednosti node-ov in ne samo po atributih.
Zadeva bi mi zelo prav prišla (zaradi slabo napisane sheme, ki je ne morem spreminjati). Kakšen namig mogoče?

Uporabniški avatar
gabr
Prispevkov: 4129
Pridružen: 28.08.2001 14:10:47

OmniXML XPath

Odgovor Napisal/-a gabr » 06.07.2010 15:54:14

A //lib/docs/doc/key1 ne dela?

cLuBbY
Prispevkov: 58
Pridružen: 11.07.2007 09:17:39

OmniXML XPath

Odgovor Napisal/-a cLuBbY » 06.07.2010 16:23:13

To itak da dela, ampak to ni to kar rabim... Če napišem takole recimo. /lib/docs/doc[key1="test"]/key2. Ker morem potem temu key2-ju spremenit vrednost in teh je N in mi takšno navadno sklicevanje popravlja vrednosti samo na prvem zapisu in do ostalih ne morem, ker ne morem določit identifikatorja (v tem primeru bi bil recimo key1 za prvi doc "test", za key1 za drugi doc "nekaj drugega" itd.) da bi se skliceval na ustrezne zapise. Upam da je malce bol razumljivo kje imam težavo. :)

Uporabniški avatar
gabr
Prispevkov: 4129
Pridružen: 28.08.2001 14:10:47

OmniXML XPath

Odgovor Napisal/-a gabr » 06.07.2010 16:30:22

Aja, seveda, zdaj štekam. Tvoj testni primer je bolj bogi. Imaš nekaj bolj temu podobnega:

Koda: Izberi vse

<lib>
  <docs>
    <doc>
      <key1>test</key1>
      <key1>test2</key1>
   </doc>
   <doc>
    ...
   </doc>
  </docs>
</lib>
in bi rad dobil samo tisti <key1>, ki ima notri "test", ne pa tistega, ki ima "test2".

Verjetno je simpl popravit, bom pogledal.

Uporabniški avatar
gabr
Prispevkov: 4129
Pridružen: 28.08.2001 14:10:47

OmniXML XPath

Odgovor Napisal/-a gabr » 06.07.2010 17:02:20

www.gabrijelcic.org/OmniXMLXPath.pas

Sem poslal tudi Mihatu, da bo vključil v uradno distribucijo.

cLuBbY
Prispevkov: 58
Pridružen: 11.07.2007 09:17:39

OmniXML XPath

Odgovor Napisal/-a cLuBbY » 07.07.2010 08:09:47

Odlično, deluje kot mora. Hvala! Upam da smo še komu drugemu olajšali kakšno podobno težavo. :D

Odgovori