[python] xml parsování

Ondrej Beranek rainbof na gmail.com
Úterý Srpen 13 14:38:00 CEST 2019


Ahoj,

Trosku to rozvedu, existuje zarizeni co generuje XML po multicast
vysilani. problem je ze ho zapnes a ono jede a jede a jede co mas mas,
co ne jsi ztratil. Kdyz se k nemu pripojis tak ti uz chybi hlavicka a
chytis to v pulce neceho. tak zacnes chytat co mas a postupne skladas
strom. Muze se ale stat (a stava se) ze se tagy kapku pokrizi a misto
koncu vetvi /B /A se obevi /A /B s tim ze mezitim jeste litaji nejaka
data. V takovemto pripade o situaci chci vedet a sam si ji podle uz
nactene urovne osetrit. Cast dat jsou data predana takze si nejsem ani
jist tim ze se struktura nemuze pozmenit...


Aby toho nebylo malo nektere tagy pro jistotu nahodne nekonci vubec
ale da se dopocitat jejich zanoreni. A podobne kratochvile.

Jo a zarizeni nemuzu restartovat.


13.08.19, starenka . <starenka0 na gmail.com>:
> tak spatny xml se obcas prihodi, kdyz to nejakej jouda generuje nejak
> obskurne, nebo se ti usekne stream nebo nevimcoeste.... lxml ucrite umi
> podoktorovat html, mozna i xml....
> ---
> In Perl you shoot yourself in the foot, but nobody can understand how you
> did it. Six months later, neither can you. | print 'aknerats'[::-1]
>
>
> On Tue, Aug 13, 2019 at 1:06 PM Petr Messner <petr.messner na gmail.com>
> wrote:
>
>> Jak jako vadný tag? Potom to není XML.
>>
>> Na HTML použij HTML parser.
>>
>> Petr Messner
>>
>> 13. 8. 2019 v 11:30, Ondrej Beranek <rainbof na gmail.com>:
>>
>> > Ahoj,
>> >
>> > když jste to tu tak nakousli, když bych chtěl zpracovávat xml streamy
>> > předem neznámého obsahu, co na to použít ? Potřebuju aby se to
>> > nesložilo když přijde nějaký vadný tag abych měl šanci si to ošetřit.
>> > Tak než začnu psát kolo...
>> >
>> > rainbof
>> >
>> > 13.08.19, Petr Messner <petr.messner na gmail.com>:
>> >> V těchto případech je asi nejednodušší xpath. Minimálně lxml ho umí.
>> >>
>> >> PM
>> >>
>> >> út 13. 8. 2019 v 8:22 odesílatel Ctibor.Plasek
>> >> <Ctibor.Plasek na seznam.cz
>> >
>> >> napsal:
>> >>
>> >>> Ahoj.
>> >>> Mám takovýto xml soubor (viz.přiložený soubor)  - export z ffprobe.
>> >>> Pro ty hodnoty, které jsou u <stream používám toto:
>> >>>
>> >>> from xml.dom import minidom
>> >>> xmldoc = minidom.parse('RainS02E06.mkv.xml')
>> >>> streamlist = xmldoc.getElementsByTagName('stream')
>> >>> for s in streamlist:
>> >>>    print(s.attributes['index'].value)
>> >>>    print(s.attributes['codec_name'].value)
>> >>>    try:
>> >>>        print(s.attributes['sample_rate'].value)
>> >>>    except:
>> >>>        print('none')
>> >>>
>> >>> ale nevím jakým způsobem se dostat k těm "hlubším" hodnotám - např.
>> >>> <tag key="DURATION-eng" - jaká je např.hodnota value u stream
>> >>> index="1"
>> >>>
>> >>> Mohli byste mi, prosím, poradit?
>> >>>
>> >>> Děkuji Ctibor
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> Python mailing list
>> >>> python na py.cz
>> >>> http://www.py.cz/mailman/listinfo/python
>> >>>
>> >>> Visit: http://www.py.cz
>> >>>
>> >>
>> > _______________________________________________
>> > Python mailing list
>> > python na py.cz
>> > http://www.py.cz/mailman/listinfo/python
>> >
>> > Visit: http://www.py.cz
>> _______________________________________________
>> Python mailing list
>> python na py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>


Další informace o konferenci Python