<p style="padding:0 0 0 0; margin:0 0 0 0;">Pro jednodušší xpath (než implementuje lxml) by měl stačit standardní modul xml.etree.ElementTree (https://docs.python.org/3/library/xml.etree.elementtree.html#module-xml.etree.ElementTree).</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">Pro reakci jen na některé tagy s postupným zpracováním možná XMLPullParser ze stejného modulu, nebo XMLParser (https://docs.python.org/3/library/xml.etree.elementtree.html#pull-api-for-non-blocking-parsing), ale nemám vyzkoušené, jak se to chová u vadných souborů.</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">Petr</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">______________________________________________________________<br />
> Od: "Ondrej Beranek" <rainbof@gmail.com><br />
> Komu: "Konference PyCZ" <python@py.cz><br />
> Datum: 13.08.2019 11:30<br />
> Předmět: Re: [python] xml parsování<br />
></p>
Ahoj,<br />
<br />
když jste to tu tak nakousli, když bych chtěl zpracovávat xml streamy<br />
předem neznámého obsahu, co na to použít ? Potřebuju aby se to<br />
nesložilo když přijde nějaký vadný tag abych měl šanci si to ošetřit.<br />
Tak než začnu psát kolo...<br />
<br />
rainbof<br />
<br />
13.08.19, Petr Messner <petr.messner@gmail.com>:<br />
> V těchto případech je asi nejednodušší xpath. Minimálně lxml ho umí.<br />
><br />
> PM<br />
><br />
> út 13. 8. 2019 v 8:22 odesílatel Ctibor.Plasek <Ctibor.Plasek@seznam.cz><br />
> napsal:<br />
><br />
>> Ahoj.<br />
>> Mám takovýto xml soubor (viz.přiložený soubor) - export z ffprobe.<br />
>> Pro ty hodnoty, které jsou u <stream používám toto:<br />
>><br />
>> from xml.dom import minidom<br />
>> xmldoc = minidom.parse('RainS02E06.mkv.xml')<br />
>> streamlist = xmldoc.getElementsByTagName('stream')<br />
>> for s in streamlist:<br />
>> print(s.attributes['index'].value)<br />
>> print(s.attributes['codec_name'].value)<br />
>> try:<br />
>> print(s.attributes['sample_rate'].value)<br />
>> except:<br />
>> print('none')<br />
>><br />
>> ale nevím jakým způsobem se dostat k těm "hlubším" hodnotám - např.<br />
>> <tag key="DURATION-eng" - jaká je např.hodnota value u stream index="1"<br />
>><br />
>> Mohli byste mi, prosím, poradit?<br />
>><br />
>> Děkuji Ctibor<br />
>><br />
>><br />
>><br />
>><br />
>> _______________________________________________<br />
>> Python mailing list<br />
>> python@py.cz<br />
>> <a href="http://www.py.cz/mailman/listinfo/python">http://www.py.cz/mailman/listinfo/python</a><br />
>><br />
>> Visit: <a href="http://www.py.cz">http://www.py.cz</a><br />
>><br />
><br />
_______________________________________________<br />
Python mailing list<br />
python@py.cz<br />
<a href="http://www.py.cz/mailman/listinfo/python">http://www.py.cz/mailman/listinfo/python</a><br />
<br />
Visit: <a href="http://www.py.cz">http://www.py.cz</a><br />