Подтвердить что ты не робот

Быстрый способ проверки XML/определения точки разлома

У меня есть большой XML файл (90 МБ) из Excel, сохраненный в формате XML Spreadsheet 2003. Он содержит различные недопустимые данные, поэтому Firefox выплескивает такие сообщения:

Line Number 790402, Column 65:
<Cell ss:StyleID="s18"><Data ss:Type="String">Here some data I&#5;?Bnternational</Data></Cell>

Есть ли инструмент, который проанализирует мой XML и скажет мне, что с ним не так, аналогично Firefox? Firefox довольно медленно разбирает его (по-видимому, потому, что он сохраняет все в памяти, готовой к рендерингу в красивое судоходное дерево). Я не беспокоюсь о валидации против XSD, просто хочу знать, правильно ли сформирован XML.

4b9b3361

Ответ 1

Там есть команда linux под названием xmllint, которая подходит для этого. Он очень быстрый, обрабатывает отличные файлы без штрих-кода и дает полезные сообщения об ошибках проверки.

Ответ 2

Другой ответ упрощен:

python -c "import sys, xml.dom.minidom as d; d.parse(sys.argv[1])" FILE

Ответ 3

Для этого вы можете использовать для этого другие функции. Например, двухстрочный слой в 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. Я нашел это довольно приятным, когда я использовал его два года назад.

Ответ 4

Я всегда рекомендую утилиты командной строки XML Starlet.

Они обеспечивают проверку, запрос, форматирование, редактирование документов прямо из командной строки, и они неоценимы для такого рода работ или проверки работоспособности, измельчения разделов через XPath и т.д.

Ответ 5

Онлайн-инструмент CodVerter предлагает:

XML валидатор
XML в XSD

Проверка данных XML, которые были экспортированы из Microsoft Excel: enter image description here

Ответ 6

Существует еще один инструмент командной строки new-ish (с 2013 года), основанный на синтаксическом анализаторе Xerces для выполнения проверки схемы XML. Он называется xjparse (https://xjparse.org). До сих пор я обнаружил, что этот инструмент медленный, но один из наиболее полных валидаторов схемы, особенно если у вас есть xsd, который включает/импортирует другие xsd. Он также доступен на большинстве популярных дистрибутивов Linux.