Ich suche nach einem guten Werkzeug, um grep-ähnliche Vorgänge in XML auszuführen - z. B. nur bestimmte Attribute zu extrahieren.
Grep selbst kann nicht damit umgehen - jedes DFA-äquivalente Werkzeug kann nur nicht rekursive Übereinstimmungen verarbeiten, und meine kann rekursiv sein.
Ich habe xgrep ausprobiert, aber es ist ziemlich instabil und ich möchte ein stabiles und zuverlässiges Werkzeug.
Irgendwelche Empfehlungen?
EDIT: Ich bevorzuge Open Source-Tools, die unter Linux gut funktionieren.
XMLStarlet (Wikipedia) ist ein Befehlszeilentool, das dem sehr nahe kommt grep. Es ist Open Source-Software (MIT-Lizenz) und funktioniert gut unter Linux und Windows.
XMLStarlet ist eine Reihe von Befehlszeilen-Dienstprogrammen (Tools), mit denen XML-Dokumente und -Dateien mit einfachen Shell-Befehlen in ähnlicher Weise umgewandelt, abgefragt, validiert und bearbeitet werden können. Dies ist für Klartextdateien mit UNIX grep, sed, Befehle für awk, diff, patch, join usw.
Das Debian / Ubuntu-Paket wird benannt xmlstarlet. Aber Achtung: Entgegen dem, was die Manpage sagt, wird die Binärdatei xmlstarletin Debian / Ubuntu benannt und nicht xml.
Es gibt auch Windows-Binärdateien auf SourceForge.
Entfernen Sie den abschließenden Schrägstrich vom ersten Link.
Bkkbrad vor 15 Jahren
0
Ich kann es nicht zum Laufen bringen ... Es passt nie auf einen Xpath außer '/' (das ganze Dokument), was ziemlich wertlos ist :(
Hendy Irawan vor 12 Jahren
0
@HendyIrawan - Sind Sie sicher, dass Sie nicht versuchen, xpath zu verwenden? (Wie Ihr XML einen Standardnamensraum hat, den Sie nicht berücksichtigen?)
Daniel Haley vor 12 Jahren
0
Ich habe versucht, es zu klonen, aber das Repository scheint kaputt zu sein.
Hola Soy Edu Feliz Navidad vor 6 Jahren
0
5
jweede
Die XPath- Syntax in verschiedenen Sprachen eignet sich am besten zum Auffinden von Dingen in XML. Tatsächlich ist eines der von xgrep empfohlenen Tools im Grunde ein Perl-XML-Parser, der XPath-Eingaben akzeptiert.
5
Peter Mortensen
Ein Werkzeug, das unter Linux funktioniert, ist xml_grep . Es versteht vollständig XML und ist kein zeilenweise Werkzeug.
xml_grep ist als eigenständiges Tool im Paket XML :: Twig enthalten. Die Grepping-Funktion ist recht leistungsfähig, da sie XPath- Spezifikationen unterstützt .
Beispiel für eine Befehlszeile (nach Mitte Februar bearbeitete Posts aus dem Triologie-Daten-Dump ):
Ich habe einen defekten Link behoben, aber der Triologie-Data-Dump-Link ist ebenfalls defekt. Ich werde sehen, was ich tun kann.
Peter Mortensen vor 7 Jahren
0
0
fretje
Ich würde raten, NICHT ein grep-ähnliches Tool für XML zu verwenden, sondern eine Bibliothek verwenden, um stattdessen XML zu parsen. Wofür brauchen Sie es genau? Irgendeine Programmiersprache? Ich denke, dass der in .NET integrierte XML-Parser leicht zu dem Job passt, wenn Sie bereit sind, dafür ein Programm zu schreiben.