Avatar billede korup Nybegynder
08. oktober 2002 - 08:43 Der er 1 løsning

indsæt i XML det rigtige sted?

Hwj
jeg 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();
    }
 
  }
 

}



----------------------------------------
Avatar billede korup Nybegynder
24. oktober 2002 - 09:46 #1
Lukker spørgsmål....

/korup
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester