Java: канонизация XML - PullRequest
       13

Java: канонизация XML

14 голосов
/ 25 февраля 2011

Какой самый простой способ сделать каноническую форму XML-файла в Java? У вас есть готовый код для этого? Я нашел несколько ссылок в сети, например это , это и это , но я не могу заставить его работать: /

Спасибо

Иван

РЕДАКТИРОВАТЬ: Я использовал канонизатор, который был предложен там, но я получаю странные результаты. Чтобы быть более точным, этот метод не удаляет пробелы между элементами ... Вот что я получаю:

<Metric xmlns="http://www.ibm.com/wsla" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="total_memory_consumption_metric" type="double" unit="Mbit" xsi:schemaLocation="http://www.ibm.com/wsla WSLA.xsd">                        <Source>ServiceProvider</Source>                        <MeasurementDirective resultType="double" xsi:type="StatusRequest">                              <RequestURI> ***unused*** </RequestURI>                        </MeasurementDirective>                  </Metric>

Ответы [ 2 ]

19 голосов
/ 25 февраля 2011

Класс Canonicalizer в Проект Apache XML Security :

Canonicalizer canon = Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS);
byte canonXmlBytes[] = canon.canonicalize(yourXmlBytes);
String canonXmlString = new String(canonXmlBytes);
1 голос
/ 04 ноября 2015

Другой вариант - nu.xom.canonical.Canonicalizer , если вы используете XOM или если у вас нет необходимости в Apache XML Security.

...