Title: using insertBefore, getting DOM006 Hierarchy request error

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

Reply via email to