首页 > Java > java教程 > 使用 DocumentBuilder.parse 解析 XML 文件时如何忽略 DTD 引用?

使用 DocumentBuilder.parse 解析 XML 文件时如何忽略 DTD 引用?

Mary-Kate Olsen
发布: 2024-10-29 19:05:30
原创
542 人浏览过

How can I ignore DTD references when parsing XML files with DocumentBuilder.parse?

使用 DocumentBuilder.parse 忽略 DTD 引用

解析引用外部 DTD(文档类型声明)的 XML 文件时,可能会出现错误如果 DTD 不可用或不可访问。要克服此问题并在解析期间忽略 DTD 引用,请在 DocumentBuilderFactory 上设置各种功能:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

dbf.setValidating(false);
dbf.setNamespaceAware(true);
dbf.setFeature("http://xml.org/sax/features/namespaces", false);
dbf.setFeature("http://xml.org/sax/features/validation", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

DocumentBuilder db = dbf.newDocumentBuilder();
登录后复制

禁用这些功能后,DocumentBuilder 将忽略 DTD 引用并继续解析 XML。

具体功能选项可能会因解析器实现而异。例如,Xerces2 解析器文档提供了有关禁用 DTD 加载和验证的更多见解。通过设置这些功能,您可以解析 XML 文件,而无需外部 DTD,从而确保最大限度地减少处理错误。

以上是使用 DocumentBuilder.parse 解析 XML 文件时如何忽略 DTD 引用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板