[python] smazání větve xml v celém dokumentu

Ondrej Beranek rainbof na gmail.com
Pondělí Leden 21 12:49:19 CET 2013


zatím jsem to udelal tak ze jsem to spustil na 64bit stroji kde to nacte a
uplácal jsem toto kde se neprohledava ten strom ale jen nalezene elementy
coz vyhovuje:

import xml.etree.ElementTree as ET

tree = ET.parse('megadokument.xml')
for neco in tree.findall("neco/dalsi/dalsi/dalsi"):
    delattr(neco)


a to ma problem s elementem delattr ale zhruba to je to co potrebuju (pokud
by to fungovalo). Zajimave je ze to podle tohoto:
http://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xpathfungovat
ma.


jeste dodavam ze mam python 3.2 v "zakladu" protoze bych si rad zachoval
rychlou prenositelnost skriptu.

O.

Dne 21. ledna 2013 12:21 Petr Messner <petr.messner na gmail.com> napsal(a):

> Pokud jde o to, že se ten xml dokument nevejde do paměti, tak řešením je
> SAX:
>
> http://lxml.de/sax.html
>
> Jestli to tedy neni zrovna to procházení, které nechceš :)
>
> Petr Messner
>
> 21. 1. 2013 v 11:18, Ondrej Beranek <rainbof na gmail.com>:
>
> mám rozsáhlý a tučný (několik gb) XML dokument, existuje nějaká cesta jak
> smazat větev v celém dokumentu aniž bych to musel procházet ?
>
> struktura "něco jako" (ve skutečnosti je velmi zanořená)
>
> <zakaznici>
> <zakaznik id=123>
> ...
> <kontakty>
> <telefon>1234</telefon>
> <telefon>456</telefon>
> </kontakty>
>
> </zakaznik>
>
> tohle:
> http://stackoverflow.com/questions/3359151/how-can-i-remove-all-elements-matching-an-xpath-in-python-using-lxmlmi nefunguje.
>
> O.
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
> _______________________________________________
> 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/20130121/47ff07e7/attachment.html>


Další informace o konferenci Python