Zdravím,

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ří.

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).

V Pythonu zkouším něco takového:

        import xml.etree.ElementTree as ET

        tree = ET.parse('content.opf’)
        
        # Všechny elementy mohu projít přes iterátor:
        for e in tree.getiterator():
                print e.tag

        # Mně ale zajímají pouze některé elementy,
        # zkouším je najít...
        tree.find(’title’)
        tree.find('package/metadata/title’)
        
        # Ani přes kořenový element se nedaří
        root = tree.getroot()
        root.find(’title’)
        root.find('package/metadata/title’)

        # Pokud se pokusím vyhledat tag ‚title’ včetně
        # jmenného prostoru, dostanu výjimku
        root.find('dc:title’)
        >>> SyntaxError: expected path separator (:)

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?

S pozdravem,
VS

Attachment: content.opf
Description: Binary data

_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem