Сначала я искал в google, и я нашел много результатов о том, как анализировать XML-документ xpath. Я разбираю его, но хочу преобразовать NODELIST в String, и я создал для него метод:
private String processResult(Document responseDocument) throws XPathExpressionException, TransformerException {
NodeList soaphead = responseDocument.getElementsByTagName("xmlTagToTrasform");
StringWriter sw = new StringWriter();
Transformer serializer = TransformerFactory.newInstance().newTransformer();
serializer.transform(new DOMSource(soaphead.item(0)), new StreamResult(sw));
String result = sw.toString();
return result;
}
Этот метод работает отлично, но трансформатор добавляет <?xml version="1.0" encoding="UTF-8"?>
В заголовок результата, и я не хочу этого. Это результат метода:
<?xml version="1.0" encoding="UTF-8"?>
<xmlTagToTrasform>
<xmlTagToTrasform2>
.
.
.
.
</xmlTagToTrasform2>
</xmlTagToTrasform>
Вы можете настроить трансформатор, чтобы не выводить декларацию XML, прежде чем вы вызовете transform
:
serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
XML - это язык разметки, и каждый XML-документ имеет эту строку вверху, чтобы указать версию и тип кодировки. Это безумно иметь это.