忽略DocumentBuilder.parse() 中的DTD 引用
解析包含外部DTD 引用的XML 檔案時,如果DTD 引用,則可能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中文網其他相關文章!