忽略 DocumentBuilder.parse() 中的 DTD 引用
解析包含外部 DTD 引用的 XML 文件时,如果 DTD 引用,则可能会遇到错误不可用。为了避免这些错误并仅专注于解析 XML 内容,请考虑以下解决方案:
<code class="java">DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // Disable validation and related features 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(); Document doc = db.parse(f);</code>
通过禁用这些功能,解析器将忽略 DTD 引用并继续解析 XML 内容。
请注意,具体选项可能会因 XML 解析器实现而异。有关禁用 DTD 相关功能的更多信息,请参阅特定解析器的文档。
以上是如何忽略 DocumentBuilder.parse() 中的 DTD 引用?的详细内容。更多信息请关注PHP中文网其他相关文章!