Article View: pl.comp.lang.python
Article #27133Re: zmiana wartości węzła tesktowego w xml
From: Rob Wolfe
Date: Tue, 05 Jan 2010 07:52
Date: Tue, 05 Jan 2010 07:52
67 lines
3173 bytes
3173 bytes
Łukasz Rekucki napisał(a):
> On Jan 5, 1:28 am, look <lukaszwojnow...@gmail.com> wrote:
> > Witam,
> >
> > Poszukuję szybkiego sposobu zmiany wartości dla wybranych węzłów
> > tekstowych.
> > Przykładowo mam kilkadziesiąt plików w których jest m. in. coś taiego:
> >
> > <znajomi>
> > <osoba>
> > <imie>Zygmunt</imie>
> > <email>1...@1.pl</email>
> > </osoba>
> > <osoba>
> > <imie>Janina</imie>
> > <email>2...@2.pl</email>
> > </osoba>
> > </znajomi>
> >
> > i chcę to zmienić na:
> >
> > <znajomi>
> > <osoba>
> > <imie>Zygmunt1</imie>
> > <email>1...@1.pl</email>
> > </osoba>
> > <osoba>
> > <imie>Janina1</imie>
> > <email>2...@2.pl</email>
> > </osoba>
> > </znajomi>
>
> Z głowy to będzie jakoś tak (o ile masz lxml):
>
> import lxml.etree as etree
> document = etree.parse(sciezka_do_pliku)
> for name in document.xpath("//znajomi/osoba/imie"):
> name.text = zmien_jakos_tekst(name.text)
> print etree.tostring(document)
Mozna tez uzyc etree z biblioteki standardowej:
<code>
import xml.etree.ElementTree as etree
xml = '''<znajomi>
<osoba>
<imie>Zygmunt</imie>
<email>1...@1.pl</email>
</osoba>
<osoba>
<imie>Janina</imie>
<email>2...@2.pl</email>
</osoba>
</znajomi>'''
tree = etree.fromstring(xml)
for imie in tree.getiterator('imie'):
imie.text = imie.text + "1"
print etree.tostring(tree)
</code>
RW
Technical Details
Message-ID:
<6c5cc204-bc32-478a-a038-94768479ca18@a15g2000yqm.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!a15g2000yqm.googlegroups.com!not-for-mailReferences:
<fda68ebd-da83-4b7e-96ae-68f1c3aeec23@v25g2000yqk.googlegroups.com> <8c3132d4-2782-4521-9366-8c310a17497f@a15g2000yqm.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!a15g2000yqm.googlegroups.com!not-for-mail From: Rob Wolfe <rw@smsnet.pl> Newsgroups: pl.comp.lang.python Subject: Re: zmiana wartości węzła tesktowego w xml Date: Mon, 4 Jan 2010 23:52:52 -0800 (PST) Organization: http://groups.google.com Lines: 69 Message-ID: <6c5cc204-bc32-478a-a038-94768479ca18@a15g2000yqm.googlegroups.com> References: <fda68ebd-da83-4b7e-96ae-68f1c3aeec23@v25g2000yqk.googlegroups.com> <8c3132d4-2782-4521-9366-8c310a17497f@a15g2000yqm.googlegroups.com> NNTP-Posting-Host: 194.197.79.18 Mime-Version: 1.0 X-Trace: posting.google.com 1262677972 12951 127.0.0.1 (5 Jan 2010 07:52:52 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 5 Jan 2010 07:52:52 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: a15g2000yqm.googlegroups.com; posting-host=194.197.79.18; posting-account=Kl85yQoAAACAhtXaf_cPVYWRBT7UPb10 User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.38 Safari/532.0,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit