Как записать содержимое объекта документа в строку в NekoHTML?
Я использую NekoHTML для разбора содержимого некоторых HTML-файлов..
Все идет хорошо, за исключением извлечения содержимого объекта документа в какую-то строку.
Я пробовал использовать
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(writer);
transformer.transform(source, result);
Но ничего не возвращается.
2 ответа
Решение
Проблема в том, что в сервере приложений Oracle 10.3.1.4 http://m-hewedy.blogspot.com/2011/04/oracle-application-server-overrides.html
Возможное решение:
//this nekohtml
DOMParser parser = new DOMParser();
parser.parse(archivo);
//this xerces
OutputFormat format = new OutputFormat(parser.getDocument());
format.setIndenting(true);
//print xml for console
//XMLSerializer serializer = new XMLSerializer(System.out, format);
//save xml in string var
OutputStream outputStream = new ByteArrayOutputStream();
XMLSerializer serializer = new XMLSerializer(outputStream, format);
//process
serializer.serialize(parser.getDocument());
String xmlText = outputStream.toString();
System.out.println(xmlText);
//to generate a file output use fileoutputstream instead of system.out
//XMLSerializer serializer = new XMLSerializer(new FileOutputStream(new File("book.xml")), format);
URL: http://totheriver.com/learn/xml/xmltutorial.html
См. Д) Сериализация DOM для FileOutputStream для создания XML-файла "book.xml".