Извлечение XML без изменения порядка атрибутов - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь извлечь XML из файла, но при получении порядок изменения атрибутов Я знаю, что это не имеет значения, но в моем случае это имеет значение, так как я хеширую документ

Я пробую приведенный ниже код, но он упорядочивает атрибуты в алфавитном порядке

File fXmlFile = new File("C:\\Users\\Desktop\\abc.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
DOMSource domSource = new DOMSource(doc);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);
String xml=writer.toString();

это XML, который я пытаюсь прочитать в переменной xml я получаю xml с атрибутами, отсортированными в алфавитном порядке

1 Ответ

0 голосов
/ 03 января 2019

Порядок атрибутов не имеет значения в XML, и инструменты, обрабатывающие XML, могут изменять порядок.

Когда вы сравниваете документы на эквивалентность (что, по-видимому, вы делаете), вам следует использовать функции сравнения и хеш-функции, которые не зависят от порядка атрибутов.

...