Editiranje XML

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

Editiranje XML

Odgovor Napisal/-a cLuBbY » 10.05.2010 12:58:46

Imam rahlo (recimo) dilemo. Stvar je takšna da pišem knjižnico za "lažje" delo z XML dokumenti. Zahteve pač... Osnova je sicer OmniXML. Branje ne povzroča problemov saj sem se odločil za XPath in vrednosti dobim enostavno. Problem nastopi ko razmišljam kakšen postopek bi ubral za spreminjanje določenih vrednosti v XML-u. V tem primeru se gre bol za manipuliranje s konfiguracijskimi xml datotekami.
Kakšen je po vaše najlažji način da poiščeš nek "node" v xml dokumentu(poljubni nivo), mu spremeniš vrednost potem pa shraniš spremenjen xml? SelectNode, findNode ali kaj tretjega? Nebi rad že pri definiranju te knjižnice zgrešil in potem popolnoma spreminjal sistem spreminjanja vrednosti...
Thx

Uporabniški avatar
Lipe
Prispevkov: 232
Pridružen: 12.10.2005 11:31:25
Kraj: Kranj

Editiranje XML

Odgovor Napisal/-a Lipe » 10.05.2010 16:24:14

Runner je že napisal eno tako knjižnico, ki je zelo uporabna ravno za manipuliranje s konfig datotekami in tudi temelji na OmniXML. Išči SimpleStorage.
Nič ni nič, pa tudi nekaj ni bogve kaj.

Uporabniški avatar
Runner
Prispevkov: 1079
Pridružen: 03.02.2005 12:05:25

Editiranje XML

Odgovor Napisal/-a Runner » 11.05.2010 09:58:19

Mislim da bo SimpleStorage ravno to kar rabiš ja. Pa še z OmniXML delaš :)

Download: http://www.cromis.net/blog/downloads/simplestorage/

Pobrskaj po blogu za članki ki kažejo uporabo. Lahko pa tudi tu vprašaš, pa ti bom pomagal. Itak je super preprosta za uporabo.

Zadeva je drugače že temeljito preverjena in deluje b.p.

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

Editiranje XML

Odgovor Napisal/-a cLuBbY » 11.05.2010 10:04:32

Mislim da bo res to to. Ravnokar preverjam demo source in gledam kaj točno rabim, kaj bi blo treba spremenit itd. V primeru kakšnih težav se vsekakor javim tukaj. :D
Hvala!

Uporabniški avatar
Runner
Prispevkov: 1079
Pridružen: 03.02.2005 12:05:25

Editiranje XML

Odgovor Napisal/-a Runner » 11.05.2010 11:45:12

Ti kar vprašaj. Demo pokaže samo osnovne možnosti, oziroma tiste najbolj uporabljane stvari.

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

Editiranje XML

Odgovor Napisal/-a cLuBbY » 12.05.2010 09:12:12

Kako pa najlažje dodam element nekam v xml (seveda s simplestorage)? Definiral bi nek xpath (npr: '/' za root node) in dodal nek element-node. Nekako nisem opazil takšnega primera v demo paketu.

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

Editiranje XML

Odgovor Napisal/-a cLuBbY » 12.05.2010 12:52:55

My bad... napačni xpath stavki so bli krivi. Drugo vprašanje. Ima simple storage že kakšno vgrajeno funkcijo za

Koda: Izberi vse

 <?xml version='1.0' encoding='utf-8'?> 

Uporabniški avatar
Runner
Prispevkov: 1079
Pridružen: 03.02.2005 12:05:25

Editiranje XML

Odgovor Napisal/-a Runner » 12.05.2010 12:53:41

Dve možnosti:

Koda: Izberi vse

MojNode := SimpleStorage.Ensure('PrviNivo/DrugiNivo/MojNode');
druga:

Koda: Izberi vse

MojNode := SimpleStorage.Ensure(['PrviNivo', 'DrugiNivo', 'MojNode']);
Lahko seveda tudi že kar:

Koda: Izberi vse

SimpleStorage.Ensure('PrviNivo/DrugiNivo/MojNode').AsString := 'Neka vrednost';
SimpleStorage je tu že tvoj root node.
Zadnjič spremenil Runner, dne 12.05.2010 12:54:32, skupaj popravljeno 1 krat.

Uporabniški avatar
Runner
Prispevkov: 1079
Pridružen: 03.02.2005 12:05:25

Editiranje XML

Odgovor Napisal/-a Runner » 12.05.2010 22:12:12

Ima simple storage že kakšno vgrajeno funkcijo za

Koda: Izberi vse

 <?xml version='1.0' encoding='utf-8'?> 
To je podprto v OmniXML-ju. Privzeto je XML itak v UTF-8 obliki. Res je pa da nisem nikoli rabil tega in zato nisem dodajal še v SimpleStorage. Bom jutri malce razmislil o podpori temu. Medtem lahko brez problema recimo skreiraš XML in potem rečeš CreateStorageFromXML.

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

Editiranje XML

Odgovor Napisal/-a cLuBbY » 13.05.2010 07:44:06

No ja sej stvar ni nujno potrebna, ker je itak pri OmniXML rešeno to v dveh vrsticah. Bolj informativno me je zanimalo če je že kaj takšnega vnaprej pripravljeno. Razmišljam že naprej za delo s shemami, transformacijami itd...

Odgovori