package lab.xml;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.CharacterData;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSSerializer;
import org.xml.sax.InputSource;
/**
* construct an xml from data
*
*
*/
public class DomWrite {
public static void main(String arg[]) throws Exception {
PrintWriter out=new PrintWriter(System.out);
test(out);
out.flush();
}
public static void test(PrintWriter out) throws Exception {
// XMLDocument xdoc=new XMLDocument();
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.newDocument();
Element rootElement=doc.createElement("table");
rootElement.setAttribute("version", "1.1");
rootElement.setAttribute("userid", "123344");
doc.appendChild(rootElement);
Element child1=doc.createElement("column");
rootElement.appendChild(child1);
child1.setAttribute("name", "\"<column1>\"");
Text textChild=doc.createTextNode("This is <b>inside</b>");
child1.appendChild(textChild);
DOMImplementationLS domls=(DOMImplementationLS)doc.getImplementation();
LSSerializer serializer=domls.createLSSerializer();
String xml=serializer.writeToString(doc);
out.println(xml);
/* //Transformer depends on xalan, which is not supported by google app engine
TransformerFactory tFactory=TransformerFactory.newInstance();
Transformer t=tFactory.newTransformer();
DOMSource dsource=new DOMSource(doc);
StringWriter sOut=new StringWriter();
StreamResult outStream=new StreamResult(sOut);
t.transform(dsource,outStream);
out.println(sOut.toString());
*/
/**
<?xml version="1.0" encoding="UTF-16"?>
<table userid="123344" version="1.1">
<column name=""<column1>"">This is <b>inside</b></column>
</table>
*/
}
}