Ответ 1
Там есть команда linux под названием xmllint, которая подходит для этого. Он очень быстрый, обрабатывает отличные файлы без штрих-кода и дает полезные сообщения об ошибках проверки.
У меня есть большой XML файл (90 МБ) из Excel, сохраненный в формате XML Spreadsheet 2003. Он содержит различные недопустимые данные, поэтому Firefox выплескивает такие сообщения:
Line Number 790402, Column 65:
<Cell ss:StyleID="s18"><Data ss:Type="String">Here some data I?Bnternational</Data></Cell>
Есть ли инструмент, который проанализирует мой XML и скажет мне, что с ним не так, аналогично Firefox? Firefox довольно медленно разбирает его (по-видимому, потому, что он сохраняет все в памяти, готовой к рендерингу в красивое судоходное дерево). Я не беспокоюсь о валидации против XSD, просто хочу знать, правильно ли сформирован XML.
Там есть команда linux под названием xmllint, которая подходит для этого. Он очень быстрый, обрабатывает отличные файлы без штрих-кода и дает полезные сообщения об ошибках проверки.
Другой ответ упрощен:
python -c "import sys, xml.dom.minidom as d; d.parse(sys.argv[1])" FILE
Для этого вы можете использовать для этого другие функции. Например, двухстрочный слой в Python:
import xml.dom.minidom as dom
dom.parse ('test.xml')
Это покажет проблему и будет достаточно результативным. Я помню, что был набор инструментов XML, который хорошо работал из bash, но я не могу найти ссылку на него прямо сейчас.
Приветствия,
Изменить: Этот вопрос ответа предложил использовать SAX над dom, так как он был бы более результативным. Готовый Python script будет выглядеть примерно так:
#!/usr/bin/env python
import xml.sax as sax
parser = sax.make_parser ()
parser.parse (open ('test.xml'))
Изменить 2: Я помню еще раз, инструмент был XMLStarlet. Я нашел это довольно приятным, когда я использовал его два года назад.
Я всегда рекомендую утилиты командной строки XML Starlet.
Они обеспечивают проверку, запрос, форматирование, редактирование документов прямо из командной строки, и они неоценимы для такого рода работ или проверки работоспособности, измельчения разделов через XPath и т.д.
Онлайн-инструмент CodVerter предлагает:
Проверка данных XML, которые были экспортированы из Microsoft Excel:
Существует еще один инструмент командной строки new-ish (с 2013 года), основанный на синтаксическом анализаторе Xerces для выполнения проверки схемы XML. Он называется xjparse (https://xjparse.org). До сих пор я обнаружил, что этот инструмент медленный, но один из наиболее полных валидаторов схемы, особенно если у вас есть xsd, который включает/импортирует другие xsd. Он также доступен на большинстве популярных дистрибутивов Linux.