以下のようなちょっとしたXMLをJavaで出力したかったのですが
xml version="1.0" encoding="UTF-8"
<Product>
<Option Id="Opt">
<Name>
<JPN>オプション品</JPN>
<ENG>Option Item</ENG>
</Name>
</Option>
</Product>
「Java XML 出力」とか調べると色々方法がありそうで、どれがいいのやら…と(^^;
後日@kazuhira_rさんがまとめて下さってました!参考になりますm(_ _)m
■JavaでXMLを書き出す
http://d.hatena.ne.jp/Kazuhira/20130905/1378394482
とりあえず出力するだけで読み込んで解析するようなものではないので、以下サイトの2つを見比べて、試しにJDOMなるものを使ってみました。
MavenのセントラルリポジトリにJDOM2があるので、以下定義。
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.5</version>
</dependency>
コード
package jp.co.hoge.xmlexample;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
public class App
{
public static void main( String[] args )
{
try {
new App().createByJdom();
} catch (IOException ex) {
Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void createByJdom() throws IOException{
Element product = new Element("Product");
Document document = new Document(product);
for(int i = 0; i < 5; i++){
Element option = new Element("Option");
option.setAttribute(new Attribute("Id", "Opt" + i));
document.getRootElement().addContent(option);
Element name = new Element("Name");
option.addContent(name);
Element jpn = new Element("JPN");
jpn.setText("オプション品" + i);
name.addContent(jpn);
Element eng = new Element("ENG");
eng.setText("Option Item" + i);
name.addContent(eng);
}
XMLOutputter xmlOut = new XMLOutputter(Format.getPrettyFormat());
xmlOut.output(document, Files.newOutputStream(Paths.get("c:\\temp\\product.xml"), StandardOpenOption.CREATE_NEW));
}
}
DOM Parserで書くより少し簡単に書ける、という感じなのかな。
他にどんなメリットがあるのか(性能とか)、もう少し要調査。
ってか日本語の情報も少ないので、あんまり使われない感じなのかな。。。
未だJavaで何かを書くときに、素で書くのがいいのか、ライブラリ使うのがいいのか、使うなら何がいいのか?の調査に時間かかってる…(-_-;