[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-----