Szukam dobrego narzędzia do wykonywania podobnych do grep operacji na XML - na przykład wyodrębnienia tylko niektórych atrybutów.
Grep
nie może sobie z tym poradzić - każde narzędzie równoważne DFA może obsługiwać tylko nierekurencyjne dopasowania, a moje może być rekurencyjne.
próbowałem xgrep , ale jest dość niestabilny i chcę stabilnego i niezawodnego narzędzia.
Jakieś zalecenia?
EDIT: Preferuję narzędzia open source, które działają dobrze pod Linuksem.
źródło
The XPath składnia w różnych językach jest najlepsza do znalezienia rzeczy w xml. w rzeczywistości jedno z narzędzi Zalecane przez twórców xgrep to w zasadzie parser XML Perla, który akceptuje dane wejściowe XPath.
źródło
Narzędziem działającym pod Linuksem jest xml_grep . W pełni rozumie XML i nie jest narzędziem liniowym.
xml_grep jest zawarty jako samodzielny narzędzie w XML :: Twig pakiet. Funkcjonalność grepping jest dość potężna, ponieważ obsługuje XPath specyfikacje.
Przykładowy wiersz polecenia (wyodrębnianie postów edytowanych po połowie lutego z trylogia Zrzut danych ):
Instalacja jest łatwa. Zarówno
sudo cpan -i "XML::Twig"
, jak opisano w podręczniku kucharskim xml_grep, o którym mowa poniżej.lub
Ściągnij http://xmltwig.org/xmltwig/XML-Twig-3.34.tar.gz lub http://search.cpan.org/CPAN/authors/id/M/MI/MIROD/XML-Twig-3.34.tar.gz . Na przykład.
wget http://search.cpan.org/CPAN/authors/id/M/MI/MIROD/XML-Twig-3.34.tar.gz
Wyciąg:
gunzip XML-Twig-3.34.tar.gz; tar -xvf XML-Twig-3.34.tar
Przejdź do folderu:
cd XML-Twig-3.34
Zainstalować:
perl Makefile.PL -y
. Następniemake
,make test
isudo make install
.Więcej informacji:
Najlepsze wprowadzenie, dla którego znalazłem xml_grep jest książka kucharska xml_grep , około dwóch stron. Inny:
źródło
XMLSpy to niesamowite narzędzie, choć trochę drogie.
źródło
Radziłbym NIE używać narzędzia podobnego do grep w XML, ale zamiast tego używać biblioteki do analizowania XML.
Do czego dokładnie tego potrzebujesz? Dowolny język programowania? Myślę, że wbudowany parser XML .NET pasuje do zadania, jeśli chcesz napisać do niego program.
Aktualizacja : dla Linuksa dobrze znaną biblioteką parsera XML jest libxml2 .
źródło