# Element an einer bestimmten Stelle einfügen (nicht am Ende)



## ak (6. Jan 2005)

Hallo Leute,

ich arbeite mit JDOM.
Ich habe folgende einfache XML-Datei (schnell abgetippt und vereinfacht):


```
<Personen>
...
  <Person>
    <name>Fritz</name>
    <beruf nebenberuf="false">Softwareentwickler</beruf>
    <Firma>Fritz-Soft</Firma>
  </Person>
...
</Personen>
```

Jetzt füge ich in folgendem Codeaussschitt ein neues element "beruf" ein: 

```
Element beruf = new Element("beruf");
        beruf.setText("Nichtsnutz");
        beruf.setAttribute("nebenberuf", "true");
        node_Person.addContent(beruf);
```

Das klappt soweit ganz gut, nur ist das Problem, dass "beruf" am Ende von "Person" angehängt wird.
In meiner DTD steht aber, dass die Reihenfolge wie oben sein muss:

```
<!ELEMENT Person (name, beruf*, Firma)*>
```

Wie kann ich das jetzt machen, dass der neue Knoten direkt nach "<beruf nebenberuf="false">Softwareentwickler</beruf>" eingefügt wird und nicht nach "<Firma>Fritz-Soft</Firma>"?

Gruß


----------



## virgie (14. Jan 2005)

hm, nun ja, also ich würde sagen, dass man erstens nicht unbedingt eine DTD braucht ....

ich verstehe dein problem schon, also ich wüsste jetzt nur die eine lösung, und zwar die, dass du die <firma> einfach als subroot aggieren lässt und die berufe als children dieser..also

  <Person> 
    <name>Fritz</name> 
    <Firma name=Fritz-Soft>
        <beruf nebenberuf="false">Softwareentwickler</beruf>
        <beruf nebenberuf="true">Nichtsnutz</beruf> 
     </Firma>       
  </Person> 

das wäre jetzt eigentlich nur ein umgehen des eigentlichen problems, aber eigentlich eine sinnvollere aufteilung...


----------



## ak (14. Jan 2005)

Hallo virgie,

wenn ich nun aber die XML-Datei plus DTD vorgegeben bekomme?  
Mir geht es ja um das grundsätzliche Problem.


----------



## Bleiglanz (14. Jan 2005)

warum schaust nicht mal in die API

addContent(int index, Content child)
          Inserts the child into the content list at the given index.


----------



## ak (14. Jan 2005)

Danke Bleiglanz, das klappt sehr gut.


----------

