Для разбора файла XML, я использовал ниже Java код,
try (InputStream inputStream = new FileInputStream(inputFile)) {
dbf = DocumentBuilderFactory.newInstance();
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
dbf.setXIncludeAware(false);
dbf.setExpandEntityReferences(false);
documentBuilder = dbf.newDocumentBuilder();
document = documentBuilder.parse(inputStream);
//Masking the text of each element/attribute
maskNodeTree(document.getDocumentElement());
} catch (SAXException e) {
throw new MaskerException("Exception while parsing file :" + inputFile, e);
} catch (IOException e1) {
throw new MaskerException("File Issue" + inputFile, e1);
} catch (ParserConfigurationException e) {
throw new MaskerException("XML Configuration Failed for the file :" + inputFile, e);
}
Примечание: запись вывода в файл отсутствует в вышеуказанном коде.
Ниже объявления DTD в файле XML,
Объявление Doctype с внешним объектом в источнике XML
Ниже я попытался пропустить синтаксический анализ,
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
Но он удаляет % IPIEntities; декларации DOCTYPE из XML
Ниже приведена декларация DOCTYPE в выходном файле XML,
Объявление Doctype с внешним объектом на выходе XML
Ожидание:
Мне нужна точная структура, которая будет показана в выходном файле. Не пропуская информации из источника, введите xml файл.