Re: How to insert after using XmlCursor?
[email protected] Wed, 23 Oct 2013 12:35:50 -0700
| Newsgroups | gmane.text.xml.xmlbeans.user |
|---|---|
| Organization | Oracle Corporation |
| Message-ID | <[email protected]> |
You need to go to the END of the parent cursor or to the nextToken of
the END of the lastChild, then do the insert.
XmlObject test1 =
XmlObject.Factory.parse("<parent><child>first</child></parent>");
XmlCursor testcurs = test1.newCursor();
if (testcurs.isStartdoc()){
testcurs.toNextToken();
}
boolean res = testcurs.toLastChild();
XmlCursor.TokenType tt = testcurs.toEndToken(); //this goes to
END tag of the last child element
tt = testcurs.toNextToken(); //we are now at the END tag of parent
testcurs.insertElementWithText("child","second");
or this
XmlObject test1 =
XmlObject.Factory.parse("<parent><child>first</child></parent>");
XmlCursor testcurs = test1.newCursor();
if (testcurs.isStartdoc()){
testcurs.toNextToken(); //now at parent element
}
XmlCursor.TokenType tt = testcurs.toEndToken(); //END tag of
parent element
testcurs.insertElementWithText("child","second");
On 10/23/2013 11:51 AM, Michael Bishop wrote:
> Hello all,
>
> I'm a bit stuck in trying to achieve this with XmlObjects and
> XmlCursor. Imagine the following scenario:
>
> <parent>
> <child>Some text</child>
> </parent>
>
> I want to insert a new element AFTER the child element.
>
> <parent>
> <child>Some text</child>
> <!-- New element here! -->
> </parent>
>
> I don't necessarily know anything about the child element. It might
> have child text like the example above. It might not. It might have
> child elements, it might not. It might have siblings, it might not.
> Here's where I'm stuck:
>
> // XmlObject representing parent.
> XmlObject parent = ...;
>
> XmlCursor parentCursor = parent.newCursor();
>
> // Now I'm at the START token for the child element.
> parentCursor.toChild("child");
>
> From here, how do I reliably get the cursor past </child> or <child/>?
> Basically I'm at the start of <child> and want to be right past the
> end of that element.
>
> Thanks,
>
> Michael