首頁  >  文章  >  Java  >  如何在 Java 中 XML 解析期間停用 DTD 參考?

如何在 Java 中 XML 解析期間停用 DTD 參考?

Patricia Arquette
Patricia Arquette原創
2024-10-26 23:58:30571瀏覽

How can I disable DTD references during XML parsing in Java?

在文件解析中忽略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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn