サーバーからrawファイルを取得してXMLファイルに変換する必要があるプロジェクトに取り組んでいます。
JAXPを使用してXMLドキュメントを解析できるように、このタスクを実行するのに役立つJavaで利用可能なツールはありますか?
はい。これは、rawファイルのテキストがすでにXMLであることを前提としています。
DocumentBuilderFactoryを取得することから始め、DocumentBuilder次にそのparse()メソッドを使用して、入力ストリームをDocument内部XML表現であるに変換できます。
生のファイルにXML以外のものが含まれている場合は、それを何らかの方法でスキャンし(ここでは独自のコード)、見つけたものを使用して空のから構築しますDocument。
次に、通常、Transformerfromを使用してファイル内の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にロードしようとすると、これで問題ないと思います