Я ищу хороший инструмент для выполнения grep-подобных операций над XML - например, извлечение только определенных атрибутов.
Grep
Сам по себе не может с этим справиться - любой эквивалентный DFA инструмент может обрабатывать только нерекурсивные совпадения, а мой может быть рекурсивным.
Я попробовал xgrep , но он довольно нестабилен, и я хочу стабильный и надежный инструмент.
Любые рекомендации?
РЕДАКТИРОВАТЬ: Я предпочитаю инструменты с открытым исходным кодом, которые хорошо работают под Linux.
источник
XPath синтаксис на разных языках лучше всего для поиска вещей в XML. Фактически, одним из инструментов, рекомендуемых создателями xgrep, является в основном Perl XML-парсер, который принимает ввод XPath.
источник
Инструмент, который работает под Linux - это xml_grep . Он полностью понимает XML и не является построчным инструментом.
xml_grep включен как отдельный инструмент в пакет XML :: Twig . Функциональность grepping довольно мощная, поскольку она поддерживает спецификации XPath .
Пример командной строки (извлечение сообщений, отредактированных после середины февраля, из дампа данных триологии ):
Установка проста. Или
sudo cpan -i "XML::Twig"
, как описано в кулинарной книге xml_grep, указанной ниже.или
Загрузите http://xmltwig.org/xmltwig/XML-Twig-3.34.tar.gz или http://search.cpan.org/CPAN/authors/id/M/MI/MIROD/XML-Twig-3.34.tar. .gz . Например
wget http://search.cpan.org/CPAN/authors/id/M/MI/MIROD/XML-Twig-3.34.tar.gz
Выдержка:
gunzip XML-Twig-3.34.tar.gz; tar -xvf XML-Twig-3.34.tar
Перейти в папку:
cd XML-Twig-3.34
Установка:
perl Makefile.PL -y
. Тогдаmake
,make test
иsudo make install
.Больше информации:
Лучшее введение, которое я нашел для xml_grep - это кулинарная книга xml_grep , около двух страниц. Другие:
источник
XMLSpy - удивительный инструмент, хотя и немного затратный.
источник
Я бы посоветовал НЕ использовать grep-подобный инструмент для XML, но использовать библиотеку для анализа XML вместо него.
Для чего именно это нужно? Любой язык программирования? Я думаю, что встроенный синтаксический анализатор XML .NET легко подойдет, если вы захотите написать для него программу.
Обновление : для Linux хорошо известной библиотекой XML-анализатора является libxml2 .
источник