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

Тема в разделе "Java", создана пользователем beg2013, 12 авг 2013.

  1. beg2013

    beg2013 New Member

    Регистрация:
    12 авг 2013
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток !
    Уважаемые гуру, помогите побороть проблемку:
    Есть код
    Код (Text):
        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/>.
    Спасибо.
     
  2. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Возможно вывод в консоль нужно сделать так:
    Код (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);
     
Загрузка...

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