[python-brasil] parser em XML - python com C

17 views
Skip to first unread message

Rodrigo faccioli

unread,
Sep 10, 2008, 1:40:32 PM9/10/08
to python...@yahoogrupos.com.br
Pessoal,

Antecipadamente peço desculpas caso este não seja uma pergunta adequada para
este fórum.

Gostaria de saber se é possível em um programa (package) escrito na
linguagem C trabalhar com Python e XML. Para ser mais exato, este programa
em C existe alguns arquivos textos todos já lidos por este programa. Porem,
querem empregar o XML nestes arquivos. Ou seja, o programa em C trabalhara
com os arquivos textos ou XML.

Neste sentido, indicaram como parser XML para C o libxml2 (
http://xmlsoft.org/). Porém estou com a idéia de trabalhar com o XML em
python por achar melhor e fazer a integração com o C através do swing.

Devo ressaltar que a palavra package tem o sentido de ser um conjunto de
programas trabalhando em etapas específicas.

Agradeço quaisquer ajudas.

Abraços,

--
Rodrigo Antonio Faccioli
Ph.D Student in Electrical Engineering
University of Sao Paulo - USP
Engineering School of Sao Carlos - EESC
Department of Electrical Engineering - SEL
Intelligent System in Structure Bioinformatics
http://laips.sel.eesc.usp.br
Phone: 55 (16) 3373-9366 Ext 229
Curriculum Lattes - http://lattes.cnpq.br/1025157978990218


[As partes desta mensagem que não continham texto foram removidas]


------------------------------------

,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia: |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar |
| E se você é usuário do BOL lembre-se de cadastrar o |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/

<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html


Leonardo Santagada

unread,
Sep 10, 2008, 3:15:53 PM9/10/08
to python...@yahoogrupos.com.br

On Sep 10, 2008, at 2:40 PM, Rodrigo faccioli wrote:

> Pessoal,
>
> Antecipadamente peço desculpas caso este não seja uma pergunta
> adequada para
> este fórum.
>

infelizmente esse não é um forum mas sim uma mailing list... mas isso
é uma discussão para outra hora.

> Gostaria de saber se é possível em um programa (package) escrito na
> linguagem C trabalhar com Python e XML. Para ser mais exato, este
> programa
> em C existe alguns arquivos textos todos já lidos por este programa.
> Porem,
> querem empregar o XML nestes arquivos. Ou seja, o programa em C
> trabalhara
> com os arquivos textos ou XML.
>
> Neste sentido, indicaram como parser XML para C o libxml2 (
> http://xmlsoft.org/). Porém estou com a idéia de trabalhar com o XML
> em
> python por achar melhor e fazer a integração com o C através do swing.

usando o elementtree?

sim isso que tu quer fazer é possivel e bem simples. O que eu faria é
simplesmente usar o swing para exportar as funções que a parte que lê
arquivos txt chama para o python usando swing e dentro dese programa
em C tu cria um interpretador python já com o modulo carregado usando
a C API que tem descrita na documentação do python. Leva tempo, mas é
relativamente o que centenas de outros programas fazem.

Vale a pena? Isso é algo que só tu pode responder :)


> Devo ressaltar que a palavra package tem o sentido de ser um
> conjunto de
> programas trabalhando em etapas específicas.

Que bom, pq essa era a unica parte do teu email que eu realmente não
tinha entendido :D

[]'s

Luciano Ramalho

unread,
Sep 10, 2008, 9:08:13 PM9/10/08
to python...@yahoogrupos.com.br
2008/9/10 Leonardo Santagada <sant...@gmail.com>:

Em qualquer discussão sobre XML e Python onde há preocupação com
performance, é obrigatório citar a lxml [1], biblioteca do genial
Martijn Faassen que faz tudo o que a ElementTree faz, e mais um monte
de coisas que ela não faz, só que tudo bem mais rápido por ser baseada
nas bibliotecas C libxml2 e libxslt

[1] http://codespeak.net/lxml/

[ ]s
Luciano

Eduardo T. Cardoso

unread,
Sep 10, 2008, 9:43:51 PM9/10/08
to python...@yahoogrupos.com.br
Ola,

2008/9/10 Luciano Ramalho <ram...@gmail.com>:


>
> Em qualquer discussão sobre XML e Python onde há preocupação com
> performance, é obrigatório citar a lxml [1], biblioteca do genial
> Martijn Faassen que faz tudo o que a ElementTree faz, e mais um monte
> de coisas que ela não faz, só que tudo bem mais rápido por ser baseada
> nas bibliotecas C libxml2 e libxslt
>
> [1] http://codespeak.net/lxml/

Acho que vale a pena citar entao outra alternativa, que seria a libxml2dom[1].

Ela nada mais eh do que um wrapper da libxml2 para uma interface DOM,
o que pode ser mais (ou menos) agradavel na hora de desenvolver.

Vale ressaltar que a lxml usa a licença BSD, e a libxml2dom a LGPL v3,
caso isso seja relevante.


[1] http://www.boddie.org.uk/python/libxml2dom.html


[]s
Eduardo

Leonardo Santagada

unread,
Sep 10, 2008, 9:50:30 PM9/10/08
to python...@yahoogrupos.com.br

On Sep 10, 2008, at 10:08 PM, Luciano Ramalho wrote:

> Em qualquer discussão sobre XML e Python onde há preocupação com
> performance, é obrigatório citar a lxml [1], biblioteca do genial
> Martijn Faassen que faz tudo o que a ElementTree faz, e mais um monte
> de coisas que ela não faz, só que tudo bem mais rápido por ser baseada
> nas bibliotecas C libxml2 e libxslt
>
> [1] http://codespeak.net/lxml/

os resultados dos benchmarks na pagina da lxml mostram que ela é bem
mais lenta para fazer parsing de xml do que a cElementTree o que se tu
vai consumir webservices significa que usar a cElementTree é mais
rápido do que a lxml.

http://codespeak.net/lxml/performance.html

[As partes desta mensagem que não continham texto foram removidas]

Carlos da Silva Santos

unread,
Sep 11, 2008, 9:10:22 AM9/11/08
to python...@yahoogrupos.com.br
2008/9/10 Leonardo Santagada <sant...@gmail.com>:

>
> On Sep 10, 2008, at 2:40 PM, Rodrigo faccioli wrote:
>
>> Pessoal,
>>
>> Antecipadamente peço desculpas caso este não seja uma pergunta
>> adequada para
>> este fórum.
>>
> infelizmente esse não é um forum mas sim uma mailing list... mas isso
> é uma discussão para outra hora.

Acho que ele quis dizer "forum" como lugar de discussão. Pode ser uma
distorção do conceito de lugar, mas não acho que esteja errado.

>
>> Gostaria de saber se é possível em um programa (package) escrito na
>> linguagem C trabalhar com Python e XML. Para ser mais exato, este
>> programa
>> em C existe alguns arquivos textos todos já lidos por este programa.
>> Porem,
>> querem empregar o XML nestes arquivos. Ou seja, o programa em C
>> trabalhara
>> com os arquivos textos ou XML.
>>
>> Neste sentido, indicaram como parser XML para C o libxml2 (
>> http://xmlsoft.org/). Porém estou com a idéia de trabalhar com o XML
>> em
>> python por achar melhor e fazer a integração com o C através do swing.
>
> usando o elementtree?
>
> sim isso que tu quer fazer é possivel e bem simples. O que eu faria é
> simplesmente usar o swing para exportar as funções que a parte que lê
> arquivos txt chama para o python usando swing e dentro dese programa
> em C tu cria um interpretador python já com o modulo carregado usando
> a C API que tem descrita na documentação do python. Leva tempo, mas é
> relativamente o que centenas de outros programas fazem.
>
> Vale a pena? Isso é algo que só tu pode responder :)

É dificil dizer sem saber outros detalhes (formato do xml, tamanho dos
arquivos, etc) mas às vezes é mais fácil fazer uma transformação XSLT
que mapeia o formato xml no formato texto e daí chamar o programa
original. Você pode fazer um script python para automatizar esse
processo, assim a sugestão não fica off-topic ;-)

[]s
Carlos

Reply all
Reply to author
Forward
0 new messages