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
content.opf
Description: Binary data
_______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python