Probleme mit JDom . addContent(int index,Collection c)

Status
Nicht offen für weitere Antworten.
P

Polo85

Gast
Guten Tag,

ich sitze schon eine längere Weile an einem Problem und hoffe durch euch Hilfe zu bekommen.

Also folgendes Problem liegt vor:

Ich habe ein XML Dokument, dem eine unbestimmte Anzahl an Knoten hinzugefügt werden soll.

Bevor ich die Knoten jedoch hinzufüge muß, muß ich noch die richtige Position herausfinden an der der Knoten hinzugefägt werden soll.

Ich versuche nun das nötigste zum Verständnis meines (Verständis-)Problems darzustellen

zur Visualisierung:

ursprüngliche XML-Datei:

Code:
<article>
	<section>Eintrag a</section>
	<section>Eintrag c</section>
</article>


überarbeitete bzw.erwartete XML-Datei:

Code:
<article>
	<section>Eintrag a</section>
        <section>Eintrag b</section>
        <section>Eintrag bb</section>
        <section>Eintrag c</section>
	<section>Eintrag d</section>
</article>


Ich finde heraus das "Eintrag b" zwischen Eintrag a und Eintrag c gehört, also an die 2 <article> Stelle

Also rufe ich die Methode

Code:
doc.getRootElement().addContent(2,el);

-->

Code:
<article>
	<section>Eintrag a</section>
        <section>Eintrag b</section>
        <section>Eintrag c</section>
</article>

auf. Wie erwartet erhalte ich auch das erwünschte Ergebnis und ich komme auf die Idee noch den Eintrag bb hinter Eintrag b einzufügen.
Also rufe ich erneut die Methode

Code:
doc.getRootElement().addContent(3,el);

-->
Code:
<article>
	<section>Eintrag a</section>
        <section>Eintrag b</section>
        <section>Eintrag bb</section>
        <section>Eintrag c</section>
</article>

auf und es klappt erneut.

So zu letzt versuche ich den Eintrag d an die 5 Stelle hinzufügen:

Code:
  doc.getRootElement().addContent(5,el);

-->
Code:
<article>
      <section>Eintrag a</section>
      <section>Eintrag b</section>
      <section>Eintrag bb</section>
      <section>Eintrag d</section>
      <section>Eintrag c</section>
</article>

Nun stellt sich mit die Frage warum ich

Code:
doc.getRootElement().addContent(6,el)

aufrufen muß um mein erwünschtes Ergebnis zu erhalten.

Ich hoffe ich habe mein Prob nicht all zu umständlich erklärt, jedoch bin ich dabei einen Automatismus einzubauen der über eine Iteration dynamisch die richtige Stelle im Xml Dokument erkennt und den Eintrag an die richtige Stelle schreibt, wobei mir noch der richtige Algorithmus fehlt.

in etwa so :

Code:
for (int i = 0; i < anzahlEinträge; i++)
{
   if(neuerEintragGehoertAnDieseStelle)
   {
      intOrt = i + (???) ));  
      break;
   }
}

doc.getRootElement().addContent(intOrt,el);



Viele Grüße
und Danke im Voraus für eure Bereitschaft zu Helfen

Polo85
 
G

Gast

Gast
Ich denke mal, dass das der neue Eintrag vor den Eintrag, der aktuell an der genannten Position ist, gesetzt wird. Dabei wird, wenn du einen Index nennst, der nicht vorhanden ist, der höchste vorhandene angenommen. Zumindest schließe ich das aus deinen Beispielen.
 

polo85

Neues Mitglied
Hallo!

Also ich habe nun einen guten Lösungsansatz für mein Problem gefunden.
Ihr könnt mich gerne noch Tipps geben, aber ich denke dieser Ansatz ist Ok.

Ich gehe nun davon aus das bereits das XML-Dok wie folgt aussieht:

Code:
<article>
      <section>Eintrag a</section>
      <section>Eintrag b</section>
      <section>Eintrag bb</section>
      <section>Eintrag c</section>
</article>

Als erstes hole ich mir alle children vom root.
Iteriere solange über die children bis meine Bedingung erfüllt ist, hole mir mit der magischen Methode, die ich bisher nicht kannte, indexOf() den Inhalt des Childs das vor meinem neuen Eintrag kommt und addiere den mit eins damit sich der neue Eintrag hinten anfügt.

Code:
Iterator<Element> children = doc.getRootElement().getChildren().iterator();
Element elm = null;
int idx = 0;
		
while (children.hasNext())
{
   elm = children.next();
   idx = 0;
   if (elm != null)
   {
       if (elm.getText().equals("Eintrag c"))
       {
	      idx = doc.getRootElement().indexOf(elm);
	      doc.getRootElement().addContent(idx + 1, new Element("section").addContent("Eintrag d"));
	      break;
        }
    }
}

Solltet ihr noch bessere Lösungsmöglichkeiten haben, so postet bitte herein.

Viele Grüße Polo85[/quote]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Probleme mit Jdom XML & JSON 3
P Probleme mit jdom XML & JSON 5
Kirby.exe Probleme mit XML XPATH Select XML & JSON 3
N Probleme bei der Formatierung beim Einfügen und löschen über DOM XML & JSON 7
G Probleme mit Jsoup in .jar File XML & JSON 11
K JAX-WS Bindin-Probleme XML & JSON 1
B Probleme mit RelativeLayout XML & JSON 1
L Jackson JSON: Probleme beim einlesen XML & JSON 1
K XOM Builder Probleme XML & JSON 3
N Jsoup: PHP-Tags bereiten Probleme? XML & JSON 2
M SAX-Parsing Probleme XML & JSON 23
M Probleme mit XPath bei Java XML & JSON 5
hdi Probleme beim Erstellen einer XML XML & JSON 7
F Probleme beim html parsen mit tagsoup XML & JSON 4
M Probleme beim Parsen eines gefilterten XML-Dokuments XML & JSON 6
H JAXB Probleme beim Unmarshalling XML & JSON 3
G Probleme mit XML und JTree XML & JSON 9
klattiator Probleme mit Codierung XML & JSON 3
S Probleme beim erstellen einer Jar XML & JSON 12
T XML und Sonderzeichen, Probleme mit ASP.NET Server XML & JSON 2
G Probleme mit Namespaces XML & JSON 5
D Probleme mit Eclipse Modeling Framework (EMF) XML & JSON 2
S PDF Erzeugung - Probleme mit der XML Datei bei Schema-Infos XML & JSON 2
C SAX Probleme beim lesen XML & JSON 4
F JAXB - Nachträglich hinzugefügter Code macht Probleme XML & JSON 2
D Probleme beim SAX parsing XML & JSON 4
F Unmarshall Probleme XML & JSON 5
byte Probleme beim Parsen von XHTML-Datei XML & JSON 4
R Probleme mit Transformer und StreamResult XML & JSON 4
C Probleme mit Include XML & JSON 10
C POI + jXLS Probleme XML & JSON 3
B DOM DTD laden abschalten, Probleme mit Doctypes und PIs XML & JSON 2
G probleme mit package XML & JSON 12
M Probleme mit String XML & JSON 3
H Probleme mit xmlrpc und php XML & JSON 13
B Probleme mit Zugriff auf eXist-Datenbank XML & JSON 9
H Neu bei JAVA- Probleme mit der Integration von Xerces XML & JSON 3
R JAVA und DOM, probleme beim einfügen von elementen ?????? XML & JSON 6
P JDOM oder SAX XML & JSON 3
Hijo2006 Grundsätzliches zu JDOM 2.x XML & JSON 1
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S JDom XML ein Element hinzufügen. XML & JSON 1
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
J JDOM XMLOutputter getPrettyFormat() XML & JSON 3
H JDOM setAttribute Reihenfolge XML & JSON 3
B XML aus einer URL im Internet lesen (JDOM) XML & JSON 4
F Aus XML mit JDOM aus Elementattributen Werte rauslesen XML & JSON 4
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
T Dom, Jdom, Sax XML & JSON 8
Helgon MalformedByteSequenceException und null JDOM Attribute XML & JSON 5
Helgon JDOM schreibt nicht XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
G xml, jdom "Entität wurde referenziert aber nicht deklariert." XML & JSON 4
A XSL und JDom XML & JSON 3
G jdom-Klassen in Eclipse importieren XML & JSON 2
S JDOM ohne XML Header erzeugen? XML & JSON 2
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
S JDOM nur Attribut Name XML & JSON 2
X JDom für SOAP Dateien geeignet? XML & JSON 3
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
M XML Parsen JDOM NullPointerEcxeption XML & JSON 7
S jdom hasChildren()? XML & JSON 1
T Frage zu getContent unter jdom XML & JSON 6
Z Tutorial für JDOM (XSD-Shema) XML & JSON 3
D jdom, xml, login-system XML & JSON 4
N JDOM: XML einlesen XML & JSON 4
O Parsen einer XML mit JDOM ohne Doctype Declaration XML & JSON 2
lordcarlos jdom zu iso-8859-15 zwingen XML & JSON 4
P jdom XML-Encoding auslesen XML & JSON 12
E JDOM - letzem child Attribut hinzufügen XML & JSON 4
H Schema-Validierung mit JDOM XML & JSON 2
lordcarlos JDOM und entfernen von children XML & JSON 4
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
T jdom.jar als Relativer Pfad in Eclipse einbinden XML & JSON 4
sparrow JDom Element.getChild("Name") liefert null obwohl vorhanden XML & JSON 4
S XML, UTF-8, JDOM und Umlaute XML & JSON 3
E XML - JDOM - Bäume: was würdet ihr hier machen? XML & JSON 11
A JDOM: Wert schreiben bzw. ändern XML & JSON 6
T JDOM Bibiliothek XML & JSON 3
K JDOM vs. DOM, Schnittstellen XML & JSON 5
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
0x7F800000 jdom mit xml.transform inkompatibel, was soll ich nehmen? XML & JSON 2
T EXSD auslesen mit XPath und JDOM XML & JSON 8
A JDOM und Sonderzeichen < > XML & JSON 17
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
N jdom problem beim lesen von child elementen XML & JSON 5
N problem bei xml lesen mit jdom XML & JSON 2
S Ampersand im Jdom-Element XML & JSON 2
N jdom - xslt-Verweis in .xml einfügen XML & JSON 3
S Jdom+java webstart XML & JSON 4
K html -> cyberneko -> xml -> jdom . XML & JSON 3
I JDom Text ändern XML & JSON 4
C jdom.Element nicht vorhanden? XML & JSON 4
W JDOM element ändern funzt nich :( [problem gelöst] XML & JSON 3
C XPath in JDOM klappt nicht XML & JSON 2
S Harte Nuss mit XML und JDOM XML & JSON 2
H mit JDOM Verarbeitungsanweisungen und Kommentare auslesen XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben