在文件解析中忽略DTD 引用
使用DTD 引用解析XML 檔案時,可能會因DTD 檔案遺失或無法存取而遇到錯誤。要在忽略 DTD 引用的同時繞過這些錯誤,需要修改 DocumentBuilderFactory 設定。
在getDoc() 方法中,實例化DocumentBuilderFactory 並配置其功能,如下所示:
<code class="java">DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // Ignore DTD references dbf.setValidating(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); // Additional settings dbf.setNamespaceAware(true); dbf.setFeature("http://xml.org/sax/features/namespaces", false); DocumentBuilder db = dbf.newDocumentBuilder(); ...</code>
透過停用驗證並禁止載入外部DTD,DocumentBuilder 將在解析期間跳過DTD 引用。這允許在不依賴 DTD 的可用性的情況下處理 XML 檔案。
有關特定於解析器實現的自訂選項的更多詳細信息,請參閱 Xerces2 文件。
以上是如何在 Java 中 XML 解析期間停用 DTD 參考?的詳細內容。更多資訊請關注PHP中文網其他相關文章!