shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Consulta em arquivos XML com o XMLLINT


From: Flavio Torres
Subject: Re: [shell-script] Consulta em arquivos XML com o XMLLINT
Date: Mon, 13 May 2013 22:01:04 -0300
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130404 Thunderbird/17.0.5

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 05/09/2013 12:50 PM, eduardo_a_s_amaral wrote:
> Olá pessoal!
> Como vão?

Olá,

>
> Estou há um tempo tentando usar este programa pra ler dados de
arquivos XML, mas ainda não deu muito certo. Eu estou procurando uma
alternativa ao uso excessivo de pipes e comandos gigandes nos meus scripts.

Bacana sua linha de raciocínio em evitar pipes. Embora não seja nada
ruim dependendo do tamanho em linhas do seu arquivo, a frequência que o
script será executada etc. De repente, até compensa. É como querer
"poder" de processamento dobrando o número de cores.

Entretanto, o mais legal é você mostrar pra galera o que já tentou.
Assim, ninguém fica pensando que você não tentou nada.

>
>
> O problema:
> Estou trabalhando num script que lê dados de um arquivo XML e quero
fazer isso com o uso de xmllint, mas ainda não entendi bem a sintaxe,
vocês poderiam me dar uma força?
>
> Tenho um xml com esta estrutura básica:
>
> <?xml version="1.0" encoding="UTF-8" ?><main>
>     <resultados>6</resultados>
>     <atualizacao>09/05/2013 - 07:37:06</atualizacao>
>     <Cidade>
>         <IdCidade>455</IdCidade>
>         <CidadeBanco>Aracaju-SE</CidadeBanco>
>         <CidadeNome>Aracaju</CidadeNome>
>         <Estado>SE</Estado>
>         <Regiao>Nordeste</Regiao>
>     </Cidade>
>
> </main>
>
> E quero ler um determinado valor, "Aracaju-SE". por exemplo que
pertence à TAG <CidadeBanco>.
>
> Como eu faço isso utilizando o xmllint?

Como você quer uma ajuda, veja a opção :

        --xpath expr: evaluate the XPath expression, inply --noout

                //Cidade/CidadeBanco/text()


Um pouco de sed:

$ sed -n '/CidadeBanco/p' /tmp/a.xml | sed 
's/.*<CidadeBanco>\(.*\)<\/CidadeBanco>.*/\1/'
Aracaju-SE
Osasco-SP


abs.




-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAlGRjMwACgkQNRQApncg297eiwCeMIWIKGN+8kJJwGRqlu3aQchy
SxkAniDyblE3z43YKt798ojZjSO4Wlxx
=qkpj
-----END PGP SIGNATURE-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]