kode:
package january;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.StringReader;
import java.util.Properties;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class Props2Xml {
private final static String xsl = "<?xml version='1.0'?>\r\n" +
"<xsl:stylesheet xmlns:xsl='
http://www.w3.org/1999/XSL/Transform' version='1.0'>\r\n" +
"<xsl:output doctype-system='
http://java.sun.com/dtd/properties.dtd'/>\r\n" +
"<xsl:template match='/'>\r\n" +
"<properties>\r\n" +
"<xsl:text>\r\n" +
"</xsl:text>\r\n" +
"<comment>Test</comment>\r\n" +
"<xsl:text>\r\n" +
"</xsl:text>\r\n" +
"<xsl:for-each select='//entry'>\r\n" +
"<xsl:sort select='@key'/>\r\n" +
"<entry>\r\n" +
"<xsl:attribute name='key'>\r\n" +
"<xsl:value-of select='@key'/>\r\n" +
"</xsl:attribute>\r\n" +
"<xsl:value-of select='.'/>\r\n" +
"</entry>\r\n" +
"<xsl:text>\r\n" +
"</xsl:text>\r\n" +
"</xsl:for-each>\r\n" +
"</properties>\r\n" +
"<xsl:text>\r\n" +
"</xsl:text>\r\n" +
"</xsl:template>\r\n" +
"</xsl:stylesheet>\r\n";
public static void main(String[] args) throws Exception {
Properties p = new Properties();
p.put("bb", "2");
p.put("ccc", "3");
p.put("a", "1");
p.put("eeeee", "5");
p.put("dddd", "4");
p.storeToXML(System.out, "Test");
System.out.println(xsl);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
p.storeToXML(baos, "Test");
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer(new StreamSource(new StringReader(xsl)));
t.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "UTF-8");
t.setOutputProperty(javax.xml.transform.OutputKeys.METHOD, "xml");
t.transform(new StreamSource(new ByteArrayInputStream(baos.toByteArray())), new StreamResult(System.out));
}
}