Парсинг Xml(<тег></тег> переходит в <тег/>)

  • Автор темы Nek
  • Дата начала
N
#1
Здравствуйте. У меня такая проблема. Имею исходный файл

<?xml version="1.0" encoding="UTF-8"?>
<root>
<a1>qqqq</a1>
<a2> </a2>
</root>

Считываю его при помощи DOM анализатора(Xerses) и записываю обратно. В итоге получаю

<?xml version="1.0" encoding="UTF-8"?>
<root>
<a1>qqqq</a1>
<a2/>
</root>

Соответственно вопрос. Как сделать так чтобы <a2></a2> не преобразовывалась в <a2/>?
 

Kmet

Java Team
25.05.2006
1 036
8
#2
а зачем? В DOM'е абсолюно незачем хранить способ представления пустого тега в исходном файле, поэтому оно и теряется, и это нормальное и правильное поведение. Заставить xerses при сериализации всегда использовать <tag></tag> кажется более реалистичным.

Добавлено: если для сериализации в xml исользуете xslt то можно попробовать <xsl:eek:utput method="html"/>, но это такой дурно пахнущий хак
 
N
#3
Файл который я буду создавать должен идти на подпись, и чтобы подпись совпадала с подписью сделанной из другого приложения нужно чтобы подписываемые файлы тоже совпадали. Вот такое дело))
 

Kmet

Java Team
25.05.2006
1 036
8
#4
раз такое дело, и надо контролировать представление вплоть до байта, то надо выкидывать XML сериализатор - не его это работа, все таки XML это формат данных. я бы использовал какой нибудь процессор шаблонов(template engine) вроде stringtemplate или velocity.