Действительно простой синтаксический анализатор SAX командной строки для XML-файлов

Раньше я использовал xmlstartlet для обработки файлов XML. Вы можете дать ему простую командную строку, и он сгенерирует (внутренне) шаблон XSLT и применит его к файлу XML.

Однако теперь у меня есть большой файл XML, поэтому мне действительно нужно использовать для этого SAX, а не XSLT. Вместо того, чтобы писать простую программу для этого, мне интересно, есть ли более простой способ, чтобы иметь действительно простой анализатор SAX из командной строки. Вы можете дать ему несколько вариантов, и он пронесется по вашему XML-файлу и распечатает из него некоторые структурированные данные.


person Rory    schedule 05.08.2009    source источник


Ответы (3)


Загрузите Python и запустите его в интерактивном режиме командной строки.

ДОКУМЕНТЫ http://docs.python.org/library/xml.sax.html

ПРИМЕР: Отображение прогресса при анализе огромного файла в Питон

person Dan Gøran Lunde    schedule 06.08.2009

Не уверен, что вы хотите извлечь и как (потому что с sax вам нужно делать все самостоятельно) - поэтому «конфигурация» довольно сложна, поэтому, на самом деле, нет инструментов командной строки, только языки программирования, которые позволяют вам делать sax.

Насколько велик ваш xml? Возможно, http://ofb.net/~egnor/xml2/ может помочь (также в зависимости от размер вашего xml.

person raincrumb    schedule 10.10.2011
comment
Ссылка не работает, но ее снимок все еще можно использовать, если он слабо документирован: github.com/clone/xml2 , https://web.archive.org/web/20160719191401/http://ofb.net/~egnor/xml2/ - person Joshua Goldberg; 08.12.2020

Точно так же у меня есть 1.1G xml файл.

Использование xsltproc занимает более 6 ГБ памяти, но завершается.

Я также пробовал использовать saxon, но ему не хватило памяти, и он не работает.

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

В конце концов мы последовали совету Данглунда и использовали Python, ATM.

person mat_geek    schedule 28.08.2014