Ich bin auf der Suche nach einem guten Tool, um grep-ähnliche Operationen mit XML auszuführen - zum Beispiel, um nur bestimmte Attribute zu extrahieren.
Grep
selbst kann es nicht verarbeiten - jedes DFA-äquivalente Tool kann nur nicht rekursive Übereinstimmungen verarbeiten, und meines ist möglicherweise rekursiv.
Ich habe xgrep ausprobiert , aber es ist ziemlich instabil und ich möchte ein stabiles und zuverlässiges Tool.
Irgendwelche Empfehlungen?
BEARBEITEN: Ich bevorzuge Open Source-Tools, die unter Linux gut funktionieren.
quelle
Die XPath- Syntax in verschiedenen Sprachen eignet sich am besten, um Dinge in XML zu finden. Tatsächlich ist eines der von den Herstellern von xgrep empfohlenen Tools im Grunde ein Perl-XML-Parser, der XPath-Eingaben akzeptiert.
quelle
Ein Tool, das unter Linux funktioniert, ist xml_grep . Es versteht XML vollständig und ist kein zeilenweises Tool.
xml_grep ist als eigenständiges Tool im XML :: Twig- Paket enthalten. Die Grepping-Funktionalität ist sehr leistungsfähig, da sie XPath- Spezifikationen unterstützt .
Beispielbefehlszeile (Extrahieren von Posts, die nach Mitte Februar bearbeitet wurden, aus dem Triology Data Dump ):
Die Installation ist einfach. Entweder
sudo cpan -i "XML::Twig"
, wie im unten angegebenen xml_grep-Kochbuch beschrieben.oder
Laden Sie http://xmltwig.org/xmltwig/XML-Twig-3.34.tar.gz oder http://search.cpan.org/CPAN/authors/id/M/MI/MIROD/XML-Twig-3.34.tar herunter .gz . Z.B
wget http://search.cpan.org/CPAN/authors/id/M/MI/MIROD/XML-Twig-3.34.tar.gz
Extrakt:
gunzip XML-Twig-3.34.tar.gz; tar -xvf XML-Twig-3.34.tar
Gehe in den Ordner:
cd XML-Twig-3.34
Installation:
perl Makefile.PL -y
. Dannmake
,make test
undsudo make install
.Mehr Informationen:
Die beste Einführung, die ich für xml_grep gefunden habe, ist xml_grep cookbook , ungefähr zwei Seiten. Andere:
quelle
XMLSpy ist ein erstaunliches Tool, wenn auch etwas teuer.
quelle
Ich würde raten, kein grep-ähnliches Tool für XML zu verwenden, sondern stattdessen eine Bibliothek zum Parsen von XML zu verwenden.
Wofür genau brauchst du es? Beliebige Programmiersprache? Ich denke, der in .NET integrierte XML-Parser würde leicht zum Job passen, wenn Sie bereit sind, ein Programm dafür zu schreiben.
Update : Für Linux ist libxml2 eine bekannte XML-Parser-Bibliothek .
quelle