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 />