🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#27666
Author: blue
Date: Tue, 21 Sep 2010 21:36
11 lines
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
#27667
Author: Artur M. Piwko
Date: Wed, 22 Sep 2010 06:32
21 lines
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
#27668
Author: Jordan Szubert
Date: Wed, 22 Sep 2010 08:30
25 lines
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
#27669
Author: Karol
Date: Thu, 23 Sep 2010 07:56
7 lines
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
#27670
Author: Karol
Date: Thu, 23 Sep 2010 07:56
7 lines
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
#27674
Author: Artur M. Piwko
Date: Thu, 23 Sep 2010 08:22
31 lines
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
#27671
Author: Jordan Szubert
Date: Thu, 23 Sep 2010 10:35
13 lines
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
#27673
Author: Artur M. Piwko
Date: Thu, 23 Sep 2010 11:40
20 lines
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
#27672
Author: Karol
Date: Thu, 23 Sep 2010 11:54
20 lines
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
#27677
Author: Bart Ogryczak
Date: Thu, 23 Sep 2010 22:51
20 lines
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
#27675
Author: Bart Ogryczak
Date: Thu, 23 Sep 2010 22:54
21 lines
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
#27676
Author: blue
Date: Thu, 21 Oct 2010 13:06
1 lines
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