it-swarm-es.com

Herramienta Grep para XML

Estoy buscando una buena herramienta para realizar operaciones similares a grep en XML; por ejemplo, extraer solo ciertos atributos.

Grep no puede manejarlo por sí mismo: cualquier herramienta equivalente a DFA solo puede manejar coincidencias no recursivas y la mía puede ser recursiva.

He intentado xgrep , pero es bastante inestable y quiero una herramienta estable y confiable.

¿Alguna recomendación?

EDITAR: Prefiero las herramientas de código abierto que funcionan bien en Linux.

22
Adam Matan

XMLStarlet (Wikipedia) es una herramienta de línea de comandos que se acerca a grep. Es un software de código abierto (licencia MIT) y funciona bien en Linux y Windows.

El sitio web XMLStarlet lo describe de la siguiente manera.

XMLStarlet es un conjunto de utilidades de línea de comandos (herramientas) que se pueden usar para transformar, consultar, validar y editar documentos y archivos XML usando un conjunto simple de comandos de Shell de manera similar a lo que se hace para archivos de texto sin formato usando UNIX grep, sed, comandos awk, diff, patch, join, etc.

El paquete Debian/Ubuntu se llama xmlstarlet. Pero cuidado: Al contrario de lo que dice la página de manual, el binario se llama xmlstarlet en Debian/Ubuntu y no xml .

También hay binarios de Windows en SourceForge.

Para una pequeña introducción agradable, consulte Comience a trabajar con XMLStarlet de IBM.

21
Ludwig Weinzierl

Una herramienta que funciona en Linux es xml_grep . Entiende completamente XML y no es una herramienta línea por línea.

xml_grep se incluye como una herramienta independiente en la XML :: Twig paquete. La funcionalidad grepping es bastante poderosa ya que admite especificaciones XPath .

Línea de comandos de muestra (extrayendo publicaciones editadas después de mediados de febrero de volcado de datos de triología ):

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

La instalación es sencilla. Ya sea

  • Sudo cpan -i "XML::Twig", como se describe en el libro de cocina xml_grep al que se hace referencia a continuación.

o


Más información:

La mejor introducción que he encontrado para xml_grep es libro de cocina xml_grep, alrededor de dos páginas. Otro:

5
Peter Mortensen

La sintaxis XPath en varios idiomas es la mejor para buscar cosas en xml. De hecho na de las herramientas recomendadas por los creadores de xgrep es básicamente un analizador XML de Perl que acepta entrada XPath.

5
jweede

Aconsejaría NO usar una herramienta similar a grep en XML, sino usar una biblioteca para analizar XML en su lugar.
¿Para qué lo necesita exactamente? ¿Algún lenguaje de programación? Creo que el analizador XML incorporado de .NET se adaptaría fácilmente al trabajo si estás dispuesto a escribir un programa para él.

Actualización : para Linux, una biblioteca de analizador XML muy conocida es libxml2 .

0
fretje

XMLSpy es una herramienta increíble, aunque un poco costosa.

0
JP Alioto