среда, 13 марта 2013 г.

Получаем строковое представление Узла(Node) в форматированном виде


    /**
     * Возвращает строковое представление Узла(Node) в форматированном виде
     *
     * @param node Объект Node
     * @return Строковое представление
     */
    public static String documentToFormattedString(Node node) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        try {
            DOMSource source = new DOMSource(node);
            StreamResult result = new StreamResult(baos);
            TransformerFactory transFactory = TransformerFactory.newInstance();
            Transformer transformer = transFactory.newTransformer();

            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
            transformer.setOutputProperty(OutputKeys.METHOD, "xml");
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
            
            transformer.transform(source, result);

        } catch (Exception ex) {
            logger.warn(ex.getMessage(), ex);
        }

        return new String(baos.toByteArray());
    }

Комментариев нет: