it-swarm-pt.tech

Ferramenta Grep para XML

Estou procurando uma boa ferramenta para realizar operações semelhantes a grep em XML - por exemplo, extrair apenas determinados atributos.

Grep em si não pode lidar com isso - qualquer ferramenta equivalente ao DFA pode lidar apenas com correspondências não recursivas, e a minha pode ser recursiva.

Tentei xgrep , mas é bastante instável e quero uma ferramenta estável e confiável.

Alguma recomendação?

EDITAR: Eu prefiro ferramentas de código aberto que funcionam bem no Linux.

22
Adam Matan

XMLStarlet (Wikipedia) é uma ferramenta de linha de comando que se aproxima de grep. É um software de código aberto (licença MIT) e funciona bem em Linux e Windows.

O site XMLStarlet descreve como segue.

XMLStarlet é um conjunto de utilitários de linha de comando (ferramentas) que podem ser usados ​​para transformar, consultar, validar e editar documentos e arquivos XML usando um conjunto simples de comandos Shell da mesma forma que é feito para arquivos de texto simples usando UNIX grep, sed, comandos awk, diff, patch, join, etc.

O pacote Debian/Ubuntu é denominado xmlstarlet. Mas cuidado: Ao contrário do que diz a página de manual, o binário é denominado xmlstarlet no Debian/Ubuntu e não xml .

Também existem binários do Windows no SourceForge.

Para uma pequena introdução agradável, veja IBM Comece a trabalhar com XMLStarlet .

21
Ludwig Weinzierl

Uma ferramenta que funciona no Linux é xml_grep . Ele compreende totalmente XML e não é uma ferramenta linha por linha.

xml_grep está incluído como uma ferramenta autônoma no XML :: Twig pacote. A funcionalidade grepping é bastante poderosa, pois suporta especificações XPath .

Linha de comando de amostra (extraindo postagens editadas após meados de fevereiro do Despejo de dados triologia ):

xml_grep -p --cond="row[@LastEditDate>'2010-02-14']"  posts.xml  > lateEditedPosts.xml

A instalação é fácil. Ou

  • Sudo cpan -i "XML::Twig", conforme descrito no livro de receitas xml_grep referenciado abaixo.

ou


Mais Informações:

A melhor introdução que encontrei para xml_grep é livro de receitas xml_grep, cerca de duas páginas. De outros:

5
Peter Mortensen

A sintaxe XPath em vários idiomas é melhor para localizar coisas em xml. Na verdade ma das ferramentas recomendado pelos criadores do xgrep é basicamente um analisador Perl XML que aceita entrada XPath.

5
jweede

Eu aconselharia NÃO usar uma ferramenta semelhante ao grep em XML, mas usar uma biblioteca para analisar XML no lugar.
Para que exatamente você precisa? Qualquer linguagem de programação? Acho que o analisador XML embutido do .NET se encaixaria facilmente no trabalho se você estiver disposto a escrever um programa para ele.

Atualização : para Linux, uma biblioteca de analisador XML bem conhecida é libxml2 .

0
fretje

XMLSpy é uma ferramenta incrível, embora um pouco gasta.

0
JP Alioto