Jen obecná poznámka...<br />
<br />
Na http://diveintopython3.py.cz/ jsem umístil HTML verzi ÄŤeského pĹ™ekladu Dive Into Python 3.  <br />
DoporuÄŤuju kapitolu 12. XML http://diveintopython3.py.cz/xml.html. Lepší je momentálnÄ›<br />
asi jen lxml, která pouĹľívá stejné aplikaÄŤní rozhraní, ale podporuje víc do hloubky XPath...<br />
<br />
V Python 2 se s ElementTree dÄ›lá podobnÄ›.<br />
 <br />
MÄ›j se fajn,<br />
    Petr<br />
 ______________________________________________________________<br />
 > Od: "Vlastimil Slinták"<br />
 > Komu: Konference PyCZ <python@py.cz><br />
 > Datum: 12.05.2011 19:16<br />
 > PĹ™edmÄ›t: [python] XML a ElementTree<br />
 ><br />
 Zdravím,<br />
 <br />
 snaĹľím se v Pythonu parsovat XML soubor pomocí xml.etree.ElementTree. ChtÄ›l bych z xml stromu naÄŤíst obsah nÄ›kterých konkrétních tagĹŻ a pĹ™ípadnÄ› je zmÄ›nit a zapsat zpÄ›t. BohuĹľel se mi to nedaĹ™í.<br />
 <br />
 Abych nemluvil obecnÄ› — snaĹľím se udÄ›lat si poĹ™ádek ve své elektronické knihovnÄ›, která obsahuje knihy ve formátu EPUB. To je v podstatÄ› ZIP archiv, který obsahuje soubor content.opf se všemi informacemi. V tomto souboru, který má formát XML, jsou uloĹľeny informace o autorovi, názvu knihy, ISBN a další (viz pĹ™íloha).<br />
 <br />
 V Pythonu zkouším nÄ›co takového:<br />
 <br />
 import xml.etree.ElementTree as ET<br />
 <br />
 tree = ET.parse('content.opf’)<br />
 <br />
 # Všechny elementy mohu projít pĹ™es iterátor:<br />
 for e in tree.getiterator():<br />
 print e.tag<br />
 <br />
 # MnÄ› ale zajímají pouze nÄ›které elementy,<br />
 # zkouším je najít...<br />
 tree.find(’title’)<br />
 tree.find('package/metadata/title’)<br />
 <br />
 # Ani pĹ™es koĹ™enový element se nedaĹ™í<br />
 root = tree.getroot()<br />
 root.find(’title’)<br />
 root.find('package/metadata/title’)<br />
 <br />
 # Pokud se pokusím vyhledat tag ‚title’ vÄŤetnÄ›<br />
 # jmenného prostoru, dostanu výjimku<br />
 root.find('dc:title’)<br />
 >>> SyntaxError: expected path separator (:)<br />
 <br />
 PravdÄ›podobnÄ› jsem jenom nepochopil jak se pracuje s XML. Jak mám naÄŤíst obsah jenom tÄ›ch elementĹŻ, které mÄ› zajímají abych s nimi mohl dál pracovat? PĹ™ípadnÄ›, existuje lepší knihovna na práci s XML v Pythonu?<br />
 <br />
 S pozdravem,<br />
 VS<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 />