Java XMLをエンコードを指定してファイルに保存。SWT。Eclipse3.7Java XML エンコード。SWT。Eclipse3.7XMLもエンコードを指定して保存しないとデフォルトのエンコードになるようです。デフォルトは何かは、知らないので、ま、エンコードを指定して保存する方がよいと思います。 ついでに、保存完了のメッセージボックスを表示してみる。
try
{
/*<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MYSQL>
<Server>centos5vm/test</Server>
<User>vbuser</User>
<Password>sa</Password>
</MYSQL>*/
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbf.newDocumentBuilder();
Document doc = builder.newDocument();
Element el1 = doc.createElement("MYSQL");
Element el2 = doc.createElement("Server");
Element el3 = doc.createElement("User");
Element el4 = doc.createElement("Password");
org.w3c.dom.Text nt1 = doc.createTextNode(textServer.getText());
el2.appendChild(nt1);
org.w3c.dom.Text nt2 = doc.createTextNode(textUser.getText());
el3.appendChild(nt2);
org.w3c.dom.Text nt3 = doc.createTextNode(textPass.getText());
el4.appendChild(nt3);
el1.appendChild(el2);
el1.appendChild(el3);
el1.appendChild(el4);
doc.appendChild(el1);
/*UTF-8で保存*/
TransformerFactory tfactory = TransformerFactory.newInstance();
Transformer transformer = tfactory.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
File outfile = new File("mysqlconnect.xml");
transformer.transform(new DOMSource(doc), new StreamResult(outfile));
/*メッセージボックス*/
//import org.eclipse.swt.widgets.MessageBox;
Shell shell = new Shell(Display.getDefault());
MessageBox msg = new MessageBox(shell,SWT.ICON_INFORMATION|SWT.YES);
msg.setText("確認");
msg.setMessage("設定ファイル\r\nmysqlconnect.xml\r\n保存しました。");
msg.open();
}
catch (Exception er)
{
er.printStackTrace();
Shell shell = new Shell(Display.getDefault());
MessageBox msg = new MessageBox(shell,SWT.ICON_WARNING|SWT.YES);
msg.setText("確認");
msg.setMessage(er.toString());
msg.open();
}
|