サーバーからrawファイルを取得してXMLファイルに変換する必要があるプロジェクトに取り組んでいます。
JAXPを使用してXMLドキュメントを解析できるように、このタスクを実行するのに役立つJavaで利用可能なツールはありますか?
はい。これは、rawファイルのテキストがすでにXMLであることを前提としています。
DocumentBuilderFactory
を取得することから始め、DocumentBuilder
次にそのparse()
メソッドを使用して、入力ストリームをDocument
内部XML表現であるに変換できます。
生のファイルにXML以外のものが含まれている場合は、それを何らかの方法でスキャンし(ここでは独自のコード)、見つけたものを使用して空のから構築しますDocument
。
次に、通常、Transformer
fromを使用してファイル内のXMLテキストTransformerFactory
に変換Document
しますが、もっと簡単な方法があるかもしれません。
後で使用するためにオブジェクトが必要になると思います。そのためMyObject
、Rawファイルから値をロードするBeanを作成し、これをsomeFile.xmlに書き込むことができます。
FileOutputStream os = new FileOutputStream("someFile.xml");
XMLEncoder encoder = new XMLEncoder(os);
MyObject p = new MyObject();
p.setFirstName("Mite");
encoder.writeObject(p);
encoder.close();
または、後でTransformerFactory
使用するためにオブジェクトが必要ない場合は、同意します。
JAXPを使用して、新しい空のドキュメントを作成することもできます。
Document dom = DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.newDocument();
次に、そのドキュメントを使用して要素を作成し、必要に応じて追加できます。
Element root = dom.createElement("root");
dom.appendChild(root);
しかし、Jørnがあなたの質問へのコメントで述べたように、それはすべて、この「生の」ファイルで何をしたいか、つまりどのようにXMLに変換するかによって異なります。そして、あなただけがそれを知っています。
XmlDocumentにロードしようとすると、これで問題ないと思います