• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Трансформация Xml

  • Автор темы beg2013
  • Дата начала
B

beg2013

Доброго времени суток !
Уважаемые гуру, помогите побороть проблемку:
Есть код
Код:
	DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
Document doc = documentBuilder.parse(new ByteArrayInputStream("<top><d1>test</d1><d2></d2><d3/></top>".getBytes()));

DOMSource source = new DOMSource(doc);
ByteArrayOutputStream outStream=new ByteArrayOutputStream();
StreamResult result = new StreamResult(outStream);

TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
transformer.transform(source, result);

System.out.println(outStream);

На выходе получаю результат:
<?xml version="1.0" encoding="UTF-8"?><top><d1>test</d1><d2/><d3/></top>

Как я понимаю, проблема в транформации transformer.transform.
Как заставить не преобразовывать <d2></d2> в <d2/> ?
Нужно на выходе получить тот же xml, что и исходный, то есть <d2></d2><d3/>.
Спасибо.
 
S

Serduko

Возможно вывод в консоль нужно сделать так:
C++:
			PrintStream ps;

try{
ps = new PrintStream(System.out, true, "UTF-16");
}catch(UnsupportedEncodingException e){
e.printStackTrace();
return;
}

byte b[] = outStream.toByteArray();
for(byte value : b) ps.write((char) value);
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!