Thread View: pl.comp.lang.python
4 messages
4 total messages
Started by look
Tue, 05 Jan 2010 00:28
zmiana wartości węzła tesktowego w xml
Author: look
Date: Tue, 05 Jan 2010 00:28
Date: Tue, 05 Jan 2010 00:28
29 lines
1762 bytes
1762 bytes
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>
Re: zmiana wartości węzła tesktowego w xml
Author: Łukasz Rekucki
Date: Tue, 05 Jan 2010 02:29
Date: Tue, 05 Jan 2010 02:29
38 lines
2499 bytes
2499 bytes
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)
Re: zmiana wartości węzła tesktowego w xml
Author: 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
Re: zmiana wartości węzła tesktowego w xml
Author: look
Date: Tue, 05 Jan 2010 21:20
Date: Tue, 05 Jan 2010 21:20
46 lines
2867 bytes
2867 bytes
Bardzo dziękuję. Właśnie o to mi chodziło. Swoją drogą w sieci
znalazłem tylko tutorial do lxml-a i nigdzie nie mogłem znaleźć tego
co potrzebowałem.
On 5 Sty, 03:29, Łukasz Rekucki <lreku...@gmail.com> wrote:
> 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)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads