[python] XML a ElementTree

Petr Přikryl prikryl na atlas.cz
Pátek Květen 13 08:55:46 CEST 2011


Jen obecná poznámka...

Na http://diveintopython3.py.cz/ jsem umístil HTML verzi českého překladu Dive Into Python 3.  
Doporučuju kapitolu 12. XML http://diveintopython3.py.cz/xml.html. Lepší je momentálně
asi jen lxml, která používá stejné aplikační rozhraní, ale podporuje víc do hloubky XPath...

V Python 2 se s ElementTree dělá podobně.
 
Měj se fajn,
    Petr
 ______________________________________________________________
 > Od: "Vlastimil Slinták"
 > Komu: Konference PyCZ 
 > Datum: 12.05.2011 19:16
 > Předmět: [python] XML a ElementTree
 >
 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
 
 
 _______________________________________________
 Python mailing list
 Python na py.cz
 http://www.py.cz/mailman/listinfo/python

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20110513/dc87f240/attachment.html>


Další informace o konferenci Python