You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Max Gravitt <Ma...@sas.com> on 2002/05/21 19:28:06 UTC
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
Re: using insertBefore, getting DOM006 Hierarchy request error
Posted by Morten Primdahl <mo...@it-c.dk>.
Max Gravitt wrote:
>
> NodeList listenersNodes = doc.getElementsByTagName("listeners");
> NodeList listenerNodes = (listenersNodes.item(0)).getChildNodes();
Note, the listenerNodes may content text nodes here.
> NodeList defaultEvents =
> (defaultEventsNodes.item(0)).getChildNodes();
>
> for (int i=0; i< rootStates.getLength(); i++) {
> Node tempListenerNode = listenerNodes.item(i);
What is the relationship between rootStates and listenerNodes?
> 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?
Perhaps you're trying to insert the node under a text node?
if(tempListenerNode.getNodeType() == Node.TEXT_NODE) {
continue;
}
else if(tempListenerNode.getNodeType() == Node.ELEMENT_NODE) {
//Bingo - insert..
}
HTH,
Morten
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org