重複の可能性:
JavaでのXMLファイルへの書き込み
以下に文字列としてXMLテキストがあります。
<someNode>
<id>A124</id>
<status>404</status>
<message>No data</message>
</someNode>
上記のXMLデータを文字列として持っています。テキストをXMLファイルに変換し、生成されたXMLファイルをアーカイブすることは可能ですか?
ありがとう!
重複の可能性:
JavaでのXMLファイルへの書き込み
以下に文字列としてXMLテキストがあります。
<someNode>
<id>A124</id>
<status>404</status>
<message>No data</message>
</someNode>
上記のXMLデータを文字列として持っています。テキストをXMLファイルに変換し、生成されたXMLファイルをアーカイブすることは可能ですか?
ありがとう!
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.parse(new InputSource(new StringReader(theString)));
を使用しjava.io.FileWriter
てファイルを保存できます。
String fileData = "<sample><xml>data</xml></sample>";
File outputFile = new File("someFile.xml");
BufferedWriter bw = null;
try{
bw = new BufferedWriter(new FileWriter(outputFile));
bw.write(fileData);
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
try{bw.close();}catch(Exception e){}
}
xmlを操作する必要がある場合は、KazekageGaaraが言ったようにします。
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.parse(new InputSource(new StringReader(theString)));
そして、私が上で言ったように、あなたは救うことができます。ドキュメントを文字列に戻すには:
fileData = doc.toString();
public class StringToXML {
public static void main(String[] args) {
String xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"></soap:Envelope>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try
{
builder = factory.newDocumentBuilder();
// Use String reader
Document document = builder.parse( new InputSource(
new StringReader( xmlString ) ) );
TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();
Source src = new DOMSource( document );
Result dest = new StreamResult( new File( "xmlFileName.xml" ) );
aTransformer.transform( src, dest );
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
この情報は役に立ちます。
ありがとう、パヴァン
そのように簡単です:
String text = "<your><xml>data</xml></your>";
Writer writer = new FileWriter("/tmp/filename.xml");
writer.write(text);
writer.flush();
writer.close();
commons-ioの使用をお勧めします。それはあなたが必要とするすべてをする単一の方法を持っています。
コードは次のようになります
FileUtils.writeStringToFile(new File("filename.xml"), xml);