2017-03-10 6 views
-2

ドキュメントオブジェクトを文字列から作成して要素に追加しようとしましたが、例外が発生します。java.io.FileNotFoundException:プロジェクトフォルダパス\ org.xml.sax.InputSourceこの行: Document constantDocument = docBuilder.parse( String.valueOf(new InputSource(new StringReader(xmlAsString))));ドキュメントオブジェクトに文字列をパーズしているときに例外が発生しました

私のコードは次のようになります。私は何をしないのです

Element infoElement = document.createElement("information"); 
String xmlAsString = "..."; //xml in string format 
Document constantDocument = docBuilder.parse(
String.valueOf(new InputSource(new StringReader(xmlAsString)))); //java.io.FileNotFoundException 
infoElement.appendChild(constantDocument); 

+2

にFileNotFoundExceptionが – Jens

+0

'String.valueOf(新しいInputSourceのかなり明確です。 ...) '私はこれが意味をなさないとは確信していません。 – Tom

+0

あなたが日焼け止めを意味するならば、そのインテリジェント補正。 – hitenz

答えて

0

理由はDocumentationにここに与えられます。

パブリック文書の解析(文字列URI) はSAXExceptionの、 にIOException

は、XML文書として指定されたURIの内容を構文解析し、新しいを返すスロー DOM Documentオブジェクトです。 URI がnullの場合、IllegalArgumentExceptionがスローされます。

あなたは文字列を提供している、とJavaは、与えられた文字列/ URIでファイルので、例外を取得しようとしている...あなたの試み、あなたが使用できる最も近いに基づいて

は次のとおりです。

解析は

はXML文書として指定された入力ソースの内容を構文解析し、新しいDOM Documentオブジェクトを返す(たInputSourceです)。そこで、以下に.parseを変更すると、あなたの問題を解決する必要があり

Document constantDocument = docBuilder.parse(new InputSource(new StringReader(xmlAsString))); 
0

は私が探していたものが見つかりました:

DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
InputSource is = new InputSource(); 
is.setCharacterStream(new StringReader("<root><nod1></node1></root>")); 

Document doc = db.parse(is); 
関連する問題