2010-07-13 10 views
1

Я использую StAX разобрать мой документ, вот фиктивный пример моего XML-документа:Как добавить узел к существующей XML-документа

<data> 

<video> 
    <title lang="eng">Harry Potter</title> 
    <price>29.99</price> 
</video> 

<book id="1"> 
    <title lang="eng">Learning XML</title> 
    <price>39.95</price> 
</book> 

<book id="n"> 
    <title lang="eng">Learning XML</title> 
    <price>39.95</price> 
</book> 

//insert new node here 

</data> 

Как я могу вставить узел после п-й книги (где n - любое число). THunk you

+0

Я бы использовал XSLT, чтобы добавить узел заранее. Это работает в вашей ситуации? – mdma

+0

@mdma на самом деле я не пытаюсь добавить этот узел в качестве части большей картины, что-то еще происходит после слов – London

ответ

0

Украсьте свой XMLEventReader с вашего собственного внедрения, что дает your own events в соответствующее время. Для этого вы можете увеличить EventReaderDelegate. Вы ставите в очередь события, которые хотите вставить, считайте прочитанные элементы и предоставите их в соответствующее время.

Если вы используете XMLStreamReader, применяется тот же принцип, но есть еще несколько способов позаботиться.

+0

Я действительно не понимаю, о каких событиях вы говорите, я просто хочу вставить узел в документ, если бы это было в конце или в начале файла, я бы превратил его в строку и добавлю его, но у меня есть ограничение узла, после которого я должен вставить другой узел. спасибо за ответ – London

+0

@London - вы вставляете узлы, возвращая события, созданные из 'XMLEventFactory'. Если вы предоставите пример кода, показывающий, как вы используете StAX, было бы легче предоставить соответствующие рекомендации. – McDowell

Смежные вопросы