Parsing XML
Martin Beránek
martin.beranek na i.cz
Čtvrtek Srpen 27 11:36:10 CEST 2009
tester tester napsal(a):
> 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.
mate DTD? pokud ano, problem s parsovanim zrejme nebude (da se pocitat s nejakou pevnou strukturou).
vas priklad mi navozuje dojem, ze to xml se skada dost dynamicky a atribut type u elementu item urcuje co lze cekat vevnitr. pokud soubory nebudou
nejak velke, klidne bych pouzil DOM (dom4j) a sel na to rekurzivne s "pretezovanim" ktere si ale budete muset udelat sam podle toho co je u elementu
item v atributu type. tedy neco jako (pseudokod):
void parseItem(Element e) {
switch(e.type)
"arrayOfFares" : parseArrayOfFares();
"farePrice" : parseFarePrice();
}
ale zalezi co z toho vlastne chcete dostat, pokud chcete jenom konkretni atributy, pouzijte xpath
--
Martin Beránek
ICZ a.s., Pobočka Brno
Londýnské náměstí 2/856, 639 00 Brno
Tel.: +420 244 100 333
Fax.: +420 244 100 344
mailto:martin.beranek na i.cz
http://www.i.cz
------------- další část ---------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5212 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://amaio.cz/pipermail/konference/attachments/20090827/f6aee26a/attachment.bin>
Další informace o konferenci Konference