首頁 >Java >java教程 >如何忽略 DocumentBuilder.parse() 中的 DTD 參考?

如何忽略 DocumentBuilder.parse() 中的 DTD 參考?

DDD
DDD原創
2024-10-31 05:00:02205瀏覽

How to Ignore DTD References in DocumentBuilder.parse()?

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

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