Java XMLUtils.outputDOM вывод пуст - PullRequest
       9

Java XMLUtils.outputDOM вывод пуст

0 голосов
/ 26 сентября 2019

Не могу понять, почему XMLUtils.outputDOM ничего не выводит

import org.apache.xml.security.utils.XMLUtils;

DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
InputSource is = new InputSource(new StringReader("<EDoc></EDoc>"));
Document doc = dbf.newDocumentBuilder().parse(is);
Element root = doc.getDocumentElement();
System.out.println(root);
OutputStream os = new FileOutputStream("out_xs.xml");
XMLUtils.outputDOM(root, os, true);
System.out.println(XMLUtils.getFullTextChildrenFromElement(root));

Вывод:

[EDoc: null]
(empty string)

out_xs.xml:

<?xml version="1.0" encoding="UTF-8"?>

Я могуполучить корневой элемент в порядке, но файл генерируется с определением xml только при условии true.Что происходит?Я использую ту же функцию в другом месте, где она работает после того, как библиотека использует Document, поэтому я подозреваю, что Document должен быть уведомлен о принятии изменений?Не могу найти любую информацию, используя поиск

1 Ответ

1 голос
/ 26 сентября 2019

Ваш вопрос немного запутан / неясен.Я запустил предоставленный код, и сгенерированный xml-файл «out_xs.xml» содержит следующее ...

<?xml version="1.0" encoding="UTF-8"?>
<EDoc></EDoc>

..., что соответствует указанному вами блоку кода.

Мне пришлось немного изменить ваш код, но пришлось добавить строку Init.init(); чуть выше XMLUtils.outputDOM(root, os, true);.В противном случае я продолжал получать исключение org.apache.xml.security.c14n.InvalidCanonicalizerException: вы должны правильно инициализировать библиотеку xml-security, прежде чем использовать ее

Возможно, проверьте версии зависимостей, яиспользовал следующее в Gradle:

// https://mvnrepository.com/artifact/xml-security/xmlsec
compile group: 'xml-security', name: 'xmlsec', version: '1.3.0'

// https://mvnrepository.com/artifact/commons-logging/commons-logging
compile group: 'commons-logging', name: 'commons-logging', version: '1.1.1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...