🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #27133

Re: zmiana wartości węzła tesktowego w xml

#27133
From: Rob Wolfe
Date: Tue, 05 Jan 2010 07:52
67 lines
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-mail
References: <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