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.

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Odpovedet emailem