← Prev in month
← Prev in 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