OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   adding new attribute to an existing xml fileusing JAXP with DOM

[ Lists Home | Date Index | Thread Index ]


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 

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

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

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 
        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!


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS