Thread View: pl.comp.lang.python
12 messages
12 total messages
Started by blue
Tue, 21 Sep 2010 21:36
usuwanie pustych węzłów w XML-ach
Author: blue
Date: Tue, 21 Sep 2010 21:36
Date: Tue, 21 Sep 2010 21:36
11 lines
1543 bytes
1543 bytes
Mam sporą liczbę XML-i, które chce "odchudzić" czyli pousuwać z nich puste węzły np. wykorzystując bibliotekę lxml. Chodzi o to że mam np. coś takiego: <root> <child>Child 1</child> <child></child> -> węzeł do usunięcia <another>Child 3</another> </root> Ogólnie chciałbym taką operację przeprowadzić dla wszystkich plików na raz (jest ich kilka tysięcy).
Re: usuwanie pustych węzłów w XML-ach
Author: Artur M. Piwko
Date: Wed, 22 Sep 2010 06:32
Date: Wed, 22 Sep 2010 06:32
21 lines
1644 bytes
1644 bytes
In the darkest hour on Tue, 21 Sep 2010 14:36:08 -0700 (PDT),
blue <lukaszwojnowski@gmail.com> screamed:
> Mam sporą liczbę XML-i, które chce "odchudzić" czyli pousuwać z nich
> puste węzły np. wykorzystując bibliotekę lxml. Chodzi o to że mam np.
> coś takiego:
><root>
> <child>Child 1</child>
> <child></child> -> węzeł do usunięcia
> <another>Child 3</another>
></root>
>
> Ogólnie chciałbym taką operację przeprowadzić dla wszystkich plików na
> raz (jest ich kilka tysięcy).
Musisz wszystkie parsować? Możnaby to przejechać sedem.
--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:207B ]
[ 08:32:04 user up 12568 days, 20:27, 1 user, load average: 0.69, 0.10, 0.09 ]
Shit happens.
Re: usuwanie pustych węzłów w XML-ach
Author: Jordan Szubert
Date: Wed, 22 Sep 2010 08:30
Date: Wed, 22 Sep 2010 08:30
25 lines
2026 bytes
2026 bytes
Dnia 22-09-2010 o 08:32:30 Artur M. Piwko <milusi.pysiaczek@buziaczek.pl> napisał(a): > In the darkest hour on Tue, 21 Sep 2010 14:36:08 -0700 (PDT), > blue <lukaszwojnowski@gmail.com> screamed: >> Mam sporą liczbę XML-i, które chce "odchudzić" czyli pousuwać z nich >> puste węzły np. wykorzystując bibliotekę lxml. Chodzi o to że mam np. >> coś takiego: >> <root> >> <child>Child 1</child> >> <child></child> -> węzeł do usunięcia >> <another>Child 3</another> >> </root> >> >> Ogólnie chciałbym taką operację przeprowadzić dla wszystkich plików na >> raz (jest ich kilka tysięcy). > > Musisz wszystkie parsować? Możnaby to przejechać sedem. nie jestem przekonany, czy przetwarzanie XMLa narzędziem do tekstu to jest dobry pomysł... znaczy konkretnie tutaj to się może udać, ale... -- Jordan Szubert
Re: usuwanie pustych węzłów w XML-ach
Author: Karol
Date: Thu, 23 Sep 2010 07:56
Date: Thu, 23 Sep 2010 07:56
7 lines
1542 bytes
1542 bytes
> > Musisz wszystkie parsować? Możnaby to przejechać sedem. > > nie jestem przekonany, czy przetwarzanie XMLa narzędziem do tekstu to jest > dobry pomysł... > znaczy konkretnie tutaj to się może udać, ale... XML nie jest tekstem?
Re: usuwanie pustych węzłów w XML-ach
Author: Karol
Date: Thu, 23 Sep 2010 07:56
Date: Thu, 23 Sep 2010 07:56
7 lines
1613 bytes
1613 bytes
> > Musisz wszystkie parsować? Możnaby to przejechać sedem. > > nie jestem przekonany, czy przetwarzanie XMLa narzędziem do tekstu to jest > dobry pomysł... > znaczy konkretnie tutaj to się może udać, ale... XML nie jest tekstem?
Re: usuwanie pustych węzłów w XML-ach
Author: Artur M. Piwko
Date: Thu, 23 Sep 2010 08:22
Date: Thu, 23 Sep 2010 08:22
31 lines
2184 bytes
2184 bytes
In the darkest hour on Wed, 22 Sep 2010 10:30:28 +0200,
Jordan Szubert <nie@podam.na.razie> screamed:
>>> Mam sporą liczbę XML-i, które chce "odchudzić" czyli pousuwać z nich
>>> puste węzły np. wykorzystując bibliotekę lxml. Chodzi o to że mam np.
>>> coś takiego:
>>> <root>
>>> <child>Child 1</child>
>>> <child></child> -> węzeł do usunięcia
>>> <another>Child 3</another>
>>> </root>
>>>
>>> Ogólnie chciałbym taką operację przeprowadzić dla wszystkich plików na
>>> raz (jest ich kilka tysięcy).
>>
>> Musisz wszystkie parsować? Możnaby to przejechać sedem.
>
> nie jestem przekonany, czy przetwarzanie XMLa narzędziem do tekstu to jest
> dobry pomysł...
> znaczy konkretnie tutaj to się może udać, ale...
>
Co innego binarny blog, ale XML jak to tekst da się przetwarzać
narzędziem do tekstu właśnie. I będzie to szybsze niż parsowanie całego
drzewa, usuwanie węzłów i składanie tego do pliku z powrotem.
Zwłaszcza jeśli masz tego tyle.
--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:225B ]
[ 10:21:25 user up 12569 days, 22:16, 1 user, load average: 0.56, 0.18, 0.15 ]
It said, "Insert disk #3," but only two will fit!
Re: usuwanie pustych węzłów w XML-ach
Author: Jordan Szubert
Date: Thu, 23 Sep 2010 10:35
Date: Thu, 23 Sep 2010 10:35
13 lines
1587 bytes
1587 bytes
Dnia 23-09-2010 o 09:56:56 Karol <karol.langner@gmail.com> napisał(a): >> > Musisz wszystkie parsować? Możnaby to przejechać sedem. >> >> nie jestem przekonany, czy przetwarzanie XMLa narzędziem do tekstu to >> jest dobry pomysł... >> znaczy konkretnie tutaj to się może udać, ale... > > XML nie jest tekstem? no jest, ale przetwarzając tekst będący XMLem przy pomocy narzędzia do tekstu, dostaniemy tekst... może i się uda dostać tekst, który nadal będzie XMLem, ale...
Re: usuwanie pustych węzłów w XML-ach
Author: Artur M. Piwko
Date: Thu, 23 Sep 2010 11:40
Date: Thu, 23 Sep 2010 11:40
20 lines
1855 bytes
1855 bytes
In the darkest hour on Thu, 23 Sep 2010 12:35:37 +0200,
Jordan Szubert <nie@podam.na.razie> screamed:
>>> nie jestem przekonany, czy przetwarzanie XMLa narzędziem do tekstu to
>>> jest dobry pomysł...
>>> znaczy konkretnie tutaj to się może udać, ale...
>>
>> XML nie jest tekstem?
>
> no jest, ale przetwarzając tekst będący XMLem przy pomocy narzędzia do
> tekstu, dostaniemy tekst...
> może i się uda dostać tekst, który nadal będzie XMLem, ale...
Ale przecież w powyższym przykładzie nie reorganizujemy struktury drzewa
a usuwamy banalne '<foo></foo>'...
--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:223B ]
[ 13:39:38 user up 12569 days, 1:34, 1 user, load average: 0.56, 0.18, 0.15 ]
Old musicians never die, they just decompose.
Re: usuwanie pustych węzłów w XML-ach
Author: Karol
Date: Thu, 23 Sep 2010 11:54
Date: Thu, 23 Sep 2010 11:54
20 lines
2355 bytes
2355 bytes
On Sep 23, 12:35 pm, "Jordan Szubert" <n...@podam.na.razie> wrote: > Dnia 23-09-2010 o 09:56:56 Karol <karol.lang...@gmail.com> napisał(a): > > >> > Musisz wszystkie parsować? Możnaby to przejechać sedem. > > >> nie jestem przekonany, czy przetwarzanie XMLa narzędziem do tekstu to > >> jest dobry pomysł... > >> znaczy konkretnie tutaj to się może udać, ale... > > > XML nie jest tekstem? > > no jest, ale przetwarzając tekst będący XMLem przy pomocy narzędzia do > tekstu, dostaniemy tekst... > może i się uda dostać tekst, który nadal będzie XMLem, ale... Jeśli masz obawy o poprawność składni w przetworzonym tekście, możesz posłużyć się odpowiednim walidatorem by ją sprawdzić na koniec. Ten z kolei będzie tylko odczytywał tekst, więc szybszy. Skoro masz dużo tekstu/plików do przetworzenia, podział zadania na takie kroki będzie korzystny.
Re: usuwanie pustych węzłów w XML-ach
Author: Bart Ogryczak
Date: Thu, 23 Sep 2010 22:51
Date: Thu, 23 Sep 2010 22:51
20 lines
1880 bytes
1880 bytes
On Sep 21, 11:36 pm, blue <lukaszwojnow...@gmail.com> wrote: > Mam sporą liczbę XML-i, które chce "odchudzić" czyli pousuwać z nich > puste węzły np. wykorzystując bibliotekę lxml. Chodzi o to że mam np. > coś takiego: > <root> > <child>Child 1</child> > <child></child> -> węzeł do usunięcia > <another>Child 3</another> > </root> > > Ogólnie chciałbym taką operację przeprowadzić dla wszystkich plików na > raz (jest ich kilka tysięcy). Nie sprawdzane, ale wg mnie powinno być coś takiego: <xsl:template match="//"> <xsl:if test = "current() != ''"> <xsl:copy-of select="."/> </xsl:if> </xsl:template>
Re: usuwanie pustych węzłów w XML-ach
Author: Bart Ogryczak
Date: Thu, 23 Sep 2010 22:54
Date: Thu, 23 Sep 2010 22:54
21 lines
2049 bytes
2049 bytes
On Sep 22, 8:32 am, "Artur M. Piwko" <milusi.pysiac...@buziaczek.pl> wrote: > In the darkest hour on Tue, 21 Sep 2010 14:36:08 -0700 (PDT), > blue <lukaszwojnow...@gmail.com> screamed: > > > Mam sporą liczbę XML-i, które chce "odchudzić" czyli pousuwać z nich > > puste węzły np. wykorzystując bibliotekę lxml. Chodzi o to że mam np. > > coś takiego: > ><root> > > <child>Child 1</child> > > <child></child> -> węzeł do usunięcia > > <another>Child 3</another> > ></root> > > > Ogólnie chciałbym taką operację przeprowadzić dla wszystkich plików na > > raz (jest ich kilka tysięcy). > > Musisz wszystkie parsować? Możnaby to przejechać sedem. Mam wątpliwości czy sed z regexpem byłby istotnie szybszy od SAXa z LXML.
Re: usuwanie pustych węzłów w XML-ach
Author: blue
Date: Thu, 21 Oct 2010 13:06
Date: Thu, 21 Oct 2010 13:06
1 lines
1426 bytes
1426 bytes
Dzięki za wszystkie odpowiedzi
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