Работаю с XML-файлом (делает его проверку). Мне нужно отредактировать некоторые атрибуты перед вычислением функции CRC32 всего файла. Я использую парсер DOM и xPath. После того как я редактировал свой файл, я преобразуя его в массив байтов для функции CRC-:Java edit xml file (сохранить порядок атрибутов)
Node file_crc = (Node) xPath.compile("/IODevice/Stamp/@crc").evaluate(doc, XPathConstants.NODE);
file_crc.setTextContent("");
bos = new ByteArrayOutputStream();
result = new StreamResult(bos);
try {
transformer.transform(new DOMSource(doc), result);
crc.reset();
crc.update(bos.toByteArray());
} catch (TransformerException ex) {
return false;
}
Проблема заключается в том, что изменения анализатор DOM атрибуты порядка в XML-файле (сортирует их alphabeticaly) - это причина неверной контрольной суммы файла. Как избежать мутации атрибутов?
Это не было мое решение использовать такой механизм). Просто нужно обойти эту проблему. – Constantine
@KostyaKrivomaz Как разобрать исходный файл в представлении DOM и сериализовать его, не меняя ничего? Затем атрибуты могут быть в лексикографическом порядке, и вы можете использовать этот промежуточный файл для контрольной суммы. –