Утилита XML Diff для командной строки для Solaris - PullRequest
1 голос
/ 30 ноября 2009

Может кто-нибудь предложить инструмент различий командной строки xml для Solaris? Я хочу вызвать его в сценарии регрессионного теста, поэтому важно, чтобы инструмент можно было вызывать из командной строки и возвращать состояние, чтобы указать, содержат ли файлы какие-либо различия.

Инструмент должен иметь возможность игнорировать порядок атрибутов.

Спасибо, Dave

Ответы [ 2 ]

2 голосов
/ 01 декабря 2009

У меня была эта проблема, и я написал свою собственную, потому что мне нужно было знать, в чем разница [1]. Если вам удастся просто узнать, идентичны ли ожидаемый и фактический XML, то самое простое - канонизировать XML в строку и преобразовать строки.

Канонизация является частью спецификации XML-инструментария и создает строку, которая не зависит от порядка атрибутов, типа цитирования, нормализации CDATA и т. Д.

Все хорошие парсеры XML должны иметь это. Я использую XOM (http://www.xom.nu) (Java), который имеет канонизатор и прост в использовании.

[1] Мой XML содержал представления действительных чисел, которые могут немного отличаться из-за ошибок округления. Простое лексическое сравнение не работает (x = "1.99999994" и x = "2" не являются лексически идентичными, но могут быть равны в пределах данного эпсилона).

0 голосов
/ 30 сентября 2011

Вы можете попробовать diffxml . Порядок атрибутов игнорируется (согласно спецификации XML).

...