Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Arquivos XMLs

Olá,

No curso foi falado do comando awk que pelo que puder ver é muito útil com tratamento de texto, qual comando poderia utilizar para trabalhar com arquivos do tipo XML?

Att.,

6 respostas

Olá Mateus,

Além do awk o sed também seria usado para manipulação de texto, qual seria exatamente a tarefa que você precisaria realizar no arquivo xml?

Abs

Olá Rafael,

Gostaria de poder analisar algumas tags do XML e recuperar seus valores. A minha ideia é criar um script que irá avaliar o XML de uma NF-e e irá recuperar, por exemplo, o CNPJ de quem emitiu, a Data de Emissão, entre outros. Após conseguir ler essas informações do XML, vou fazer a organização dos arquivos com base nelas.

Observação: praticamente todo o conteúdo do arquivo está em uma única linha.

Att., Mateus

Olá Mateus,

Para arquivos xml existe uma ferramenta chamada xml-grep que acredito que irá ajudar. Estou encaminhando abaixo maiores detalhes sobre essa ferramenta:

http://xml-coreutils.sourceforge.net/xml-grep_man.html

Abs

Bom dia Mateus.

Além das ferramentas citadas, se você usar Java há também o JAX-B, que faz essa extração facilmente de conteúdos de um XML:

http://blog.caelum.com.br/jaxb-xml-e-java-de-maos-dadas/

Pesquisando por JAXB no Google, há diversos outros links.

Para Java, há uma outra biblioteca que faz isso também: XStream.

Além disso, como você disse que o arquivo está sem quebra de linhas, eis um link para te ajudar com a visualização do XML:

https://www.freeformatter.com/xml-formatter.html

Abraço!

solução!

Olá,

Rafael Silva, obrigado

Na Empresa que trabalho não consigo instalar novos programas, então tive que procurar algo que já estivesse instalado no Solaris, achei o xmllint, consegui resolver meu problema usando:

xmllint --xpath "//*[local-name()='dest']/*[local-name()='CNPJ']/text()" $arquivo

Tive que usar local-name() por causa do namespace. Fonte.

Rafael Franco,

Obrigado pela ajuda, mas eu precisava em shell script.

Olá Mateus,

Que bom que resolveu! Pow, não sabia que tinha que ser só shell!

Interesse o xmllint, não o conhecia. Como uso shell vez ou outra, vou anotar o nome desse para quando precisar.

Também agradeço.

Abraço!