ホームページ >Java >&#&チュートリアル >Java での XML 解析中に DTD 参照を無効にするにはどうすればよいですか?
ドキュメント解析における 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>
By検証を無効にして外部 DTD のロードを抑制すると、DocumentBuilder は解析中に DTD 参照をスキップします。これにより、DTD の可用性に依存せずに XML ファイルを処理できるようになります。
パーサー実装に固有のカスタマイズ オプションの詳細については、Xerces2 のドキュメントを参照してください。
以上がJava での XML 解析中に DTD 参照を無効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。