Hi Rahil,
I don't see anything wrong in your code.
This may be a stupid question, but it is
better for conform:
Did you finally persist the DOM tree back to test.xml after
modifications?
Thanks,
Prakash
Rahil wrote:
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
-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>
The list archives are at http://lists.xml.org/archives/xml-dev/
To subscribe or unsubscribe from this list use the subscription
manager: <http://www.oasis-open.org/mlmanage/index.php>
|