ホームページ >Java >&#&チュートリアル >DocumentBuilder.parse で XML ファイルを解析するときに DTD 参照を無視するにはどうすればよいですか?

DocumentBuilder.parse で XML ファイルを解析するときに DTD 参照を無視するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-29 19:05:30543ブラウズ

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 のロードと検証の無効化に関する追加の洞察が提供されます。これらの機能を設定すると、外部 DTD を必要とせずに XML ファイルを解析でき、処理エラーを最小限に抑えることができます。

以上がDocumentBuilder.parse で XML ファイルを解析するときに DTD 参照を無視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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