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(); } |