← Prev in month ← Prev in thread

adding new attribute to an existing xml fileusing JAXP with DOM

From
Rahil <>
To
Date
2005-08-05T14:58:54Z
ID
<>
Thread
adding new attribute to an existing xml fileusing JAXP with DOM
Hi

This is my first post to this forum and Im hoping to get some 
suggestions as Im completely exhausted trying to resolve my query.

My query is to add a new attribute to a selected node in an existing xml 
file.

I have a test.xml file whose structure is such:

<Top>
    <Tags>
         <Tag id="123" name="Home">
            <Value>Inner Text</Value>
        </Tag>
    </Tags>
</Top>

Now using the JAXP DocumentBuilder I am able to access the attribute 
@name from the <Tag> node. I then want to insert a new attribute 
@new="some value" to this <Tag> node. But despite trying out several 
options Im not able to. I want to do something similar with the <Value> 
node as well and append some InnerText to the existing one.

My code so far is:
--------------------------------
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(test.xml);

NodeList list = doc.getElementsByTagName("Tag");

for(int i=0; i<list.getLength();i++){
Element tagNode = (Element)list.item(i); //<Tag>
nm = tagNode.getAttributes();

for(int j=0;j<nm.getLength();j++){
    Node ndNm = nm.item(j); // id, name --attributes names
    nodeLocNm = ndNm.getNodeName();

    if(nodeLocNm.equals(new String("name"))){
        String nodeVal = nm.item(j).getNodeValue(); //@name value -- do 
something
        String newRes = "new value";
        tagNode.setAttribute("new", "new value");
    }
}
}

--------------------------------------------------

Of course no attribute @name gets added to test.xml which is my problem !

Could someone please help.

Thanks in advance to everyone for helping out!
Rahil
← Prev in month ← Prev in thread