indsæt i XML det rigtige sted?
Hwjjeg har lavet et program som laver en node som skal sættes ind i mit xml fil som en ny node.
Men jeg kan ikke få det ind det rigtige sted!
Er der nogen der kan se hvordan jeg skal gøre?
Den skal sættes ind som et nyt kamera.
XML fil
----------------------------
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<Merkur>
<Menu title="menu">
<Punkt navn="Indstillinger">
<Navn url="../index.jsp?s=gen_ins" navn="Gennerelle"/>
</Punkt>
<Punkt navn="Kamera">
<Navn navn="INDGANG" type="CAM">
<Billede>/IMAGE.jpg</Billede>
<Ip_adresse>172.16.130.99</Ip_adresse>
<Sti>/home/INDGANG/</Sti>
<Oplosning>640 x 480</Oplosning>
<Komprimering>Very low</Komprimering>
<Backup>JA</Backup>
</Navn>
<Navn navn="LOKALE" type="CAM">
<Billede>/IMAGE.jpg</Billede>
<Ip_adresse>172.16.130.98</Ip_adresse>
<Sti>/home/LOKALE/</Sti>
<Oplosning>640 x 480</Oplosning>
<Komprimering>Very low</Komprimering>
<Backup>JA</Backup>
</Navn>
</Punkt>
<Punkt navn="Backup">
<Navn url="../index.jsp?s=b_ins" navn="Indstillinger"/>
</Punkt>
<Punkt navn="Hjælp">
<Navn url="../index.jsp?s=H_backup" navn="Backup"/>
</Punkt>
<Punkt navn="Logud">
<Navn url="../admin/logud.jsp?" navn="Log Ud"/>
</Punkt>
</Menu>
<Indstillinger>
<Subnet_mask>225.225.0.0</Subnet_mask>
<Gateway>172.16.0.1</Gateway>
<Dns_1>172.16.0.1</Dns_1>
<Dns_2>172.16.0.2</Dns_2>
<Backup>
<Antal_sek>2</Antal_sek>
</Backup>
</Indstillinger>
</Merkur>
-----------------------------------------
Java filen
----------------------------------------
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
public class ReadAnXMLFile
{
public static void main(String[] args)
{
String cam_navn = "Allan";
String Billede = "/IMAGE.jpg";
String IP_ADR = "172.16.130.99";
String STI = "home/Allan/";
String Oplosning = "2";
String Komp = "VERY LOW";
String Backup ="JEPPER";
try
{
// use SAXBuilder to create DOM from numerous types of input
SAXBuilder builder = new SAXBuilder();
// expand entities within the SAXBuilder
builder.setExpandEntities(true);
// SAXBuilder is more does create the entire DOM at once
Document doc = builder.build("merkur.xml");
System.out.println( doc );
// Create the new Element that represents our new servlet
Element newNavn = new Element("Navn");
newNavn.setAttribute("navn",cam_navn);
Element newBillede = new Element("Billede");
newBillede.setText(Billede);
Element newIP = new Element("Ip_adresse");
newIP.setText(IP_ADR);
Element newSTI = new Element("Sti");
newSTI.setText(STI);
Element newOpl = new Element("Oplosning");
newOpl.setText(Oplosning);
Element newKomp = new Element("Komprimering");
newKomp.setText(Backup);
Element newBackup = new Element("Backup");
newBackup.setText(IP_ADR);
newNavn.addContent(newBillede);
newNavn.addContent(newIP);
newNavn.addContent(newSTI);
newNavn.addContent(newOpl);
newNavn.addContent(newKomp);
newNavn.addContent(newBackup);
// find the first <servlet> child in the document
Element root = doc.getRootElement();
System.out.println("8");
Element firstServlet = root.getChild("Menu");
Element firstServlet2 = firstServlet.getChild("Punkt");
Element firstServlet3 = firstServlet2.getChild("Navn");
//children.indexOf(firstServlet3)
System.out.println("9");
// Now insert our new servlet tag before the one we just found.
Element parent = firstServlet2.getParent();
System.out.println("10");
List children = parent.getChildren("Navn");
System.out.println("11");
children.add(1, newNavn);
System.out.println("12");
XMLOutputter xmlOutputter = new XMLOutputter();
xmlOutputter.setTextTrim( true );
xmlOutputter.setIndent( 2 );
xmlOutputter.setNewlines( true );
// output the text
xmlOutputter.output(doc,new FileOutputStream("merkur.xml"));
}
catch (JDOMException e)
{
e.printStackTrace();
}
catch(Exception ioe)
{
ioe.printStackTrace();
}
}
}
----------------------------------------
