Hi,
I'm trying to use the insertBefore method to insert a node from one part of the document to another. I'm getting a "DOM006 Hierarchy request error". I have an idea of what this error means, but I don't know why I'm getting it.
My XML looks something like this:
<defaults>
<defaultevents>
<event name="event1" />
<event name="event2" />
</defaultevents>
</defaults>
<listeners>
<listener name="listener1" >
<event name="event3" />
<event name="event4" />
</listener>
</listeners>
I'm trying to read all events under "defaultevents" and insert them before the events listed under each "listener". So after the transformation, "listener1" would have 4 events.
My code looks like this:
NodeList defaultEventsNodes = doc.getElementsByTagName("defaultevents");
if (null == defaultEventsNodes || defaultEventsNodes.getLength() == 0) {
return doc;
}
NodeList listenersNodes = doc.getElementsByTagName("listeners");
NodeList listenerNodes = (listenersNodes.item(0)).getChildNodes();
NodeList defaultEvents = (defaultEventsNodes.item(0)).getChildNodes();
for (int i=0; i< rootStates.getLength(); i++) {
Node tempListenerNode = listenerNodes.item(i);
for (int j=0; j< defaultEvents.getLength(); j++) {
Node tempEventNode = defaultEvents.item(j);
tempListenerNode.insertBefore(tempEventNode, tempListenerNode.getFirstChild()); // exception here
}
}
I get the exception "DOMException: DOM006 Hierarchy request error" when I invoke the "insertBefore" method.
Can anyone provide any more details about what's going on here? Or is there some other (better) way to accomplish this?
thanks in advance,
Max
