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: [email protected] [mailto:[email protected]] 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.
smime.p7s
Description: S/MIME cryptographic signature
