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

beg2013

New member
12.08.2013
1
0
#1
Доброго времени суток !
Уважаемые гуру, помогите побороть проблемку:
Есть код
Код:
	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/>.
Спасибо.
 

Serduko

Well-known member
11.10.2011
170
0
#2
Возможно вывод в консоль нужно сделать так:
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);