[
Lists Home |
Date Index |
Thread Index
]
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
|