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

Тема в разделе "Java", создана пользователем Nek, 28 июн 2011.

  1. Nek

    Nek Гость

    Здравствуйте. У меня такая проблема. Имею исходный файл

    <?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/>?
     
  2. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    а зачем? В DOM'е абсолюно незачем хранить способ представления пустого тега в исходном файле, поэтому оно и теряется, и это нормальное и правильное поведение. Заставить xerses при сериализации всегда использовать <tag></tag> кажется более реалистичным.

    Добавлено: если для сериализации в xml исользуете xslt то можно попробовать <xsl:eek:utput method="html"/>, но это такой дурно пахнущий хак
     
  3. Nek

    Nek Гость

    Файл который я буду создавать должен идти на подпись, и чтобы подпись совпадала с подписью сделанной из другого приложения нужно чтобы подписываемые файлы тоже совпадали. Вот такое дело))
     
  4. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    раз такое дело, и надо контролировать представление вплоть до байта, то надо выкидывать XML сериализатор - не его это работа, все таки XML это формат данных. я бы использовал какой нибудь процессор шаблонов(template engine) вроде stringtemplate или velocity.
     
Загрузка...

Поделиться этой страницей