首頁 > Java > java教程 > 使用 DocumentBuilder.parse 解析 XML 檔案時如何忽略 DTD 參考?

使用 DocumentBuilder.parse 解析 XML 檔案時如何忽略 DTD 參考?

Mary-Kate Olsen
發布: 2024-10-29 19:05:30
原創
564 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板