Я использую стороннее приложение и хотел бы изменить один из его файлов. Файл хранится в формате XML, но с недопустимым типом документа.
Когда я пытаюсь читать, использую it ошибки из-за того, что doctype содержит «file: ///ReportWiz.dtd»
(как показано, с кавычками), и я получаю исключение для не могу найти файл. Есть ли способ сказать докулеру игнорировать это? Я пытался установить значение false для false и setNamespaceAware для false для DocumentBuilderFactory.
Единственные решения, о которых я могу думать, это
- копируйте файл построчно в новый файл, пропуская строку, вызывающую сбой, делайте то, что мне нужно, затем копируйте в другой новый файл и вставляйте строку, в которой нарушена, или
- делает в основном то же самое, что и выше, но работает с FileStream некоторого вида (хотя мне не ясно, как я мог бы сделать это .. помощь?)
DocumentBuilderFactory docFactory = DocumentBuilderFactory
.newInstance();
docFactory.setValidating(false);
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(file);