- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Java ファイルオブジェクトでなく文字列オブジェクト?)
JavaでXMLをパースする方法はファイルオブジェクトだけでなく文字列オブジェクトでも可能?
このQ&Aのポイント
- JavaでXMLをパースする際、ファイルオブジェクトだけでなく文字列オブジェクトでも可能ですか?
- JavaのXMLパーサーを使用してXMLをパースする際、ファイルオブジェクトではなく文字列オブジェクトを使用する方法があるのでしょうか?
- XMLパーサーを使用してXMLをパースする際、ファイルオブジェクト以外にも文字列オブジェクトを使用することができるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
このSAXParserのparseだが、Fileインスタンスの他にInputStreamインスタンスを引数に取るオーバーロードが存在する。 SAXParser#parse(InputStream, DefaultParser) これはInputStreamからreadしてパースするものだ。つまり、Stringを何らかの方法でInputStreamにしてやれば良い。方法は簡単。StringをgetBytesでbyte配列に取ってから、ByteArrayInputStremに食わせてやればよい。 // ※このように String str = "<xml? ......"; // SAXパーサーファクトリを生成 SAXParserFactory spfactory = SAXParserFactory.newInstance(); // SAXパーサーを生成 SAXParser parser = spfactory.newSAXParser(); // XMLファイルを指定されたデフォルトハンドラーで処理します parser.parse(new ByteArrayInputStream(str.getBytes()), new InsXMLParser()); 動くと思うが頭ん中だけで書いているのでぜひ実験して欲しい。