Posicionamento de TAG XML

Oi pessoal,

Minha duvida é a seguinte:
Eu tenho um xhtml que vai conter uma tag digamos <assunto>

Então toda vez que no meu parser eu achar o <assunto> eu tenho que mudar assunto para uma String.
Tudo bem, isso eu já fiz so que o problema é que eu não consigo colocar no lugar exato onde eu encontrei a tag e ela vai sempre para o final do html, ou seja antes da tag </html>.
O que eu quero:“O novo <assunto> será” == "O novo livro será"
O que eu pego:“O novo será (…fim do html…) livro </html>”

Aqui ta o meu código

Element root = doc.getDocumentElement();
NodeList bodynl = root.getElementsByTagName("body");
NodeList redirectnl = root.getElementsByTagName("redirect"); 
Node n = redirectnl.item(0);
NamedNodeMap namemap = n.getAttributes();                                     
Node value = namemap.getNamedItem("text");
String storeValue = value.getNodeValue();                         

Element aElement = doc.createElement("someelement");
Text text = doc.createTextNode("sometext");
aElement.setAttribute("string", "string");
aElement.setNodeValue(storeValue);            
aElement.appendChild(text);

root.insertBefore(aElement, root.getLastChild().getNextSibling());

Valeu

Seu XHTML é inválido. O correto é:

O novo <assunto /> será:

Do jeito que você fez, você abriu a tag assunto mas não a fechou.

Esqueci de digitar a tag aqui no guj e mermo assim ia levantar uma se esse fosse o caso

Enfim eu resolvi assim:

n.getParentNode().replaceChild((Node)aElement, n);