ホームページ  >  記事  >  Java  >  DocumentBuilder.parse() で DTD 参照を無視するにはどうすればよいですか?

DocumentBuilder.parse() で DTD 参照を無視するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-31 05:00:02113ブラウズ

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

DocumentBuilder.parse() での DTD 参照の無視

外部 DTD への参照を含む XML ファイルを解析するときに、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。