[java][XML] [DOM, Xerces] Nodes wisselen

Pagina: 1
Acties:

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 25-08 17:13

Altaphista

1. check manual, 2. ask

Topicstarter
het is me al gelukt om een Node omhoog te schuiven. Dit omdat er een handige methode bestaat insertBefore(...)

Maar.. nu wil ik een Node naar beneden 'schuiven', dus wisselen met die eronder. Ik ben al een eind maar strand nu... kan iemand mij ff duwtje in de goeie richting geven?

mijn 'XML bestand':
XML:
1
2
3
4
5
6
7
8
9
<item id="1">
  <subitem>value 1 here</subitem>
</item>
<item id="2">
  <subitem>value 2 here</subitem>
</item>
<item id="3">
  <subitem>value 3 here</subitem>
</item>

en na wat geschuivel moet het worden:
XML:
1
2
3
4
5
6
7
8
9
<item id="2">
  <subitem>value 2 here</subitem>
</item>
<item id="1">
  <subitem>value 1 here</subitem>
</item>
<item id="3">
  <subitem>value 3 here</subitem>
</item>


ik heb:

Java:
1
2
3
4
5
//node n bestaat al
Node nNextNext = n.getNextSibling();
nNextNext = nNextNext.getNextSibling();//nog 1 verder om dáárvoor te inserten
Node n2 = (doc.getDocumentElement()).removeChild(n);//Removes the child node indicated by 'n' from the list of children, and returns it.
(doc.getDocumentElement()).insertBefore(n2, nNextNext);

Je gaat het pas zien als je het doorhebt.


Verwijderd

Je kan dan tch nog steeds insertBefore() gebruiken alleen pak je de node die er na komt i.p.v
dat je de werkelijke node pakt. ;) En je zei dat dat goed werkte alleen moet je er dus voor zorgen dat je de volgende node pakt.
Dat lijkt mij het handigst en het snelst. Hoef je niks te onthouden of whatever.

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 25-08 17:13

Altaphista

1. check manual, 2. ask

Topicstarter
ok, maar ik heb dit in een functie staan, maar deze moet ik 2x aanroepen voordat ie het doet. Ja het is vreemd dat ie het pas in de 2e instantie doet.
vcb ...
je bedoelt: de omhoogschuiffunctie gebruiken en dan de node ná de naar beneden te verplaatsen node pakken, om die omhoog te schuiven? Is wel een slim idee op zich

Je gaat het pas zien als je het doorhebt.