为了账号安全,请及时绑定邮箱和手机立即绑定

使用本地 DTD 验证 XML,引发错误

使用本地 DTD 验证 XML,引发错误

慕仙森 2021-06-16 13:10:24
我正在尝试使用本地 DTD 验证我的 XML,我对此进行了谷歌搜索,然后我得到了一些代码,这是我的代码。public Document buildDocument(File receivedFile) {    Document doc = null;    try {        logger.info("Inside buildDocument() , create a new DocumentBuilderFactory");        // create a new DocumentBuilderFactory        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();        factory.setValidating(true);        // use the factory to create a documentbuilder        DocumentBuilder builder = factory.newDocumentBuilder();        builder.setErrorHandler(new ErrorHandler() {            @Override            public void fatalError(SAXParseException exception) throws SAXException {                System.err.println("fatalError: " + exception);            }            @Override            public void error(SAXParseException exception) throws SAXException {                System.err.println("error: " + exception);            }            @Override            public void warning(SAXParseException exception) throws SAXException {                System.err.println("warning: " + exception);            }        });        builder.setEntityResolver(new EntityResolver() {            @Override            public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {                if (systemId.contains("xyz.com/remote.dtd")) {                    return new InputSource(FileUtils.readFileToString(                            new File("C:\\Users\\xyz\\local.dtd"));                } else {                    return null;                }            }        });        doc = builder.parse(new InputSource(new StringReader(FileUtils.readFileToString(receivedFile, "UTF-16"))));    } catch (ParserConfigurationException | SAXException | IOException e) {        logger.warn("Opps got error while buiding document", e);    }    return doc;注意:我的 XML 编码类型为 UTF-16更新:在读取文件时删除了 UF-16,看起来 DTD 正在尝试进行编译并且它抛出以下错误,latin-entities.dtd(系统找不到指定的路径)这是否意味着这个 DTD 正在寻找依赖 DTD??
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 222 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信