import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/*
 * Test.java
 *
 * Created on June 8, 2007, 4:55 PM
 *
 */

/**
 *
 * @author Jean-Francois Beaulac
 */
public class Test {
    
    public static void main(String args []){
        try{
            // Generate a DOM tree
            /*
             <ROOT>
                <TEXT>
                    Test text
                    < With special character
                </TEXT>
             </ROOT>
             
             */
            DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
            
            Document doc = docBuilder.newDocument();
            
            //<QBXML>
            Element root = doc.createElement("ROOT");
            doc.appendChild(root);
            
            Element text = doc.createElement("TEXT");
            root.appendChild(text);
            
            text.appendChild(doc.createTextNode("Test text\n< With special character" + System.getProperty("line.separator") + "after line.separator."));
            
            // Transformation
            TransformerFactory transfac = TransformerFactory.newInstance();
            Transformer trans = transfac.newTransformer();
            trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
            trans.setOutputProperty(OutputKeys.METHOD,"xml");
            
            //create string from xml tree
            StringWriter sw = new StringWriter();
            StreamResult result = new StreamResult(sw);
            DOMSource source = new DOMSource(doc);
            trans.transform(source, result);
            
            // Console
            System.out.println(sw.toString()); 
            // File
            java.io.File file = new java.io.File(System.currentTimeMillis() + "@lastRequest.xml");
            java.io.BufferedWriter writer = new java.io.BufferedWriter(new java.io.FileWriter(file, true));
            writer.write(sw.toString());
            writer.flush();
            writer.close();
        }catch(Exception e){
        }
    }
}
