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

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

Mary-Kate Olsen
リリース: 2024-10-29 19:05:30
オリジナル
562 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート