Lave nestede elementer i XML dokument
Hej jeg har følgende kodeHej jeg har følgende kode
File xmlfile = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
DOMImplementation impl =db.getDOMImplementation();
DocumentType doctype = impl.createDocumentType("xml", null,null);
Document xmldoc = impl.createDocument(null, "xml", doctype);
Element root = xmldoc.getDocumentElement();
Element node = xmldoc.createElement("rootid");
Text node_value = xmldoc.createTextNode(""+rootid);
addXMLNode(xmldoc,"course",value,id)
// kaldet til addXMLNode sker vie an rekursiv metode. Har undladt denne metode
xmlfile = File.createTempFile("contents", ".xml");
FileOutputStream fos = new FileOutputStream(xmlfile);
OutputFormat format = new OutputFormat();
XMLSerializer serializer = new XMLSerializer(fos,format);
serializer.serialize(xmldoc);
fos.flush();
fos.close();
node.appendChild(node_value);
root.appendChild(node);
private void addXMLNode(Document xmldoc,String name,String value,int id) {
try {
Element node = xmldoc.createElement(name);
node.setAttribute("id", ""+id);
Text node_value = xmldoc.createTextNode(value);
node.appendChild(node_value);
xmldoc.getDocumentElement().appendChild(node);
} catch (Exception e) {
log.error("adXMLdNode (" + name + ")", e.fillInStackTrace());
}
}
UD fra ovenstående kan jeg genere følgende XML fil
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<rootid>3353</rootid>
<course id="3353">Testing TW</course>
<page id="3355">Page 1</page>
<chapter id="3354">Kapitel 1</chapter>
<page id="4208">Side and under kapitel 1 </page>
<page id="3356">Page 2</page>
<chapter id="4210">Kapitel 2Ļ</chapter>
<page id="4211">Side kaj under kapitel 2</page>
<page id="4212">Tom side </page>
<endchapter id="4214">UnderKapitel 2.1 HEJ</endchapter>
<chapter id="4216">underkapitel 2.2</chapter>
<endchapter id="4217">under under 3</endchapter>
</xml>
Men jeg vil gerne neste/flette mine XML elementer så min fil kommer til at se således ud, hvis muligt
<chapter id="3354">
<value><![CDATA[Kapitel 1]]></value>
<page id="4208">Side and under kapitel 1 </page>
<page id="3356">Page 2</page>
</chapter>
Om jeg skal sætte CDATA som en tag er jeg ikke helt sikker. Nogen der har en ide om hvordan jeg får nestet mine XML tags ?
