Parsing XML
Gabriel Gajdos
gabriel.gajdos na ipdap.sk
Čtvrtek Srpen 27 11:54:07 CEST 2009
Riešenie sa volá "stavový automat".
Keď som chodil na strednú, tak ma to učili na predmete "programovanie".
Princíp je v tom, že parsovací algoritmus musí vedieť, kde je (=v akom je
stave daný objekt) a nestačí mu len hluchonemo narábať s xml elementami...
Takže ja by som odporučil pozrieť sa aj na túto teóriu.
Ale XPath je tiež jedno z riešení, ktoré však nemusí byť pre konkrétnu
situáciu použiteľné.
Tretia alternatíva je tento XML (pre Vás vstupný a nemenný) najskôr
transformovať podľa zvolenej XSLT šablóny, kde sa dajú pomerne elegantne
odlíšiť "item" a "item" (napr. podľa rodiča alebo detí)... Výstupom XSLT
transformácie by potom bol výstupný XML vyhovujúci Vašej aplikácii a/alebo
objektom.
Ja by som volil asi tento postup. Raz som niečo podobné použil a malo to
ohromnú výhodu, že som mal oddelenú definíciu objektu a spracovanie
vstupných dát. Nové feature som implementoval len na úrovni výstupného XML,
pričom premostenie so zdrojovými dátami robila XSLT transformácia.
GG
-----Original Message-----
From: konference-bounces na java.cz [mailto:konference-bounces na java.cz] On
Behalf Of tester tester
Sent: Thursday, August 27, 2009 10:37 AM
To: 'Java'
Subject: Parsing XML
Ahoj vsetkych,
kedze som s komplexnejsimi XML nepracoval ra by som sa spytal ako mozno
sparsovat takuto vec :
<item type="com.raileasy.public.arrayOfFares">
<flexibilitycode>y</flexibilitycode>
<packagetype>0</packagetype>
<totalpriceoffares>1540</totalpriceoffares>
<savingoverthroughfare>0</savingoverthroughfare>
<outboundjourneys type="array">
<item>1</item>
</outboundjourneys>
<fares type="array">
<item type="com.raileasy.public.fare">
<tickettypecode>SDS</tickettypecode>
<routedescription>NOT LONDON</routedescription>
<prices type="array">
<item type="com.raileasy.public.farePrice">
<currency>GBP</currency>
<totalprice>1540</totalprice>
<numchildtickets>0</numchildtickets>
<numgrouptickets>0</numgrouptickets>
<totaladultprice>1540</totaladultprice>
<adultprice>1540</adultprice>
<numadulttickets>1</numadulttickets>
</item>
</prices>
<packagetype>0</packagetype>
<rtn>NO</rtn>
<outwardreservationrequired>NO</outwardreservationrequired>
<publicationsequence>056</publicationsequence>
<numpassengers>1</numpassengers>
<validitycode>87</validitycode>
<capricode>AAA</capricode>
<outboundjourneys type="array">
<item>1</item>
</outboundjourneys>
<routecode>00700</routecode>
<crosslondon>NO</crosslondon>
<categorycode>y</categorycode>
<fareclass>2</fareclass>
<faregroup>S</faregroup>
</item>
</fares>
<includesafirstclassfare>NO</includesafirstclassfare>
<outwardreservationrequired>NO</outwardreservationrequired>
<includesastandardclassfare>YES</includesastandardclassfare>
<numfares>1</numfares>
<rtn>NO</rtn>
</item>
je to cast xml ktore dostavam od servru.
Problem s ktorym sa borim je ze existuje niekolko elementov <item> ktore sa
nachadzaju rozhadzane po celom elemente a nijako medzi sebou nesuvisia inymi
slovami su ineho typu.
Vie ma niekto nakopnut spravnym smerom ako sa s touto hlupostou vysporiadat
?
A.
------------- další část ---------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3273 bytes
Desc: [žádný popis není k dispozici]
URL: <http://amaio.cz/pipermail/konference/attachments/20090827/ac16fd59/attachment.bin>
Další informace o konferenci Konference