• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы Nek
  • Дата начала Дата начала
N

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/>?
 
а зачем? В DOM'е абсолюно незачем хранить способ представления пустого тега в исходном файле, поэтому оно и теряется, и это нормальное и правильное поведение. Заставить xerses при сериализации всегда использовать <tag></tag> кажется более реалистичным.

Добавлено: если для сериализации в xml исользуете xslt то можно попробовать <xsl:output method="html"/>, но это такой дурно пахнущий хак
 
Файл который я буду создавать должен идти на подпись, и чтобы подпись совпадала с подписью сделанной из другого приложения нужно чтобы подписываемые файлы тоже совпадали. Вот такое дело))
 
раз такое дело, и надо контролировать представление вплоть до байта, то надо выкидывать XML сериализатор - не его это работа, все таки XML это формат данных. я бы использовал какой нибудь процессор шаблонов(template engine) вроде stringtemplate или velocity.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab