Link to home
Start Free TrialLog in
Avatar of pprasadravi
pprasadravi

asked on

Add Node to XmlDocument

Hi

I have the following structure
<Root>
<Person value='10'>
<DetailInfo value='abcd'>

</DetailInfo>
<Addresses>
</Addresses>
</Person>
<Person value='20'>
<DetailInfo value='abcd'>

</DetailInfo>
<Addresses>
</Addresses>
</Person>
<Person value='30'>
<DetailInfo value='abcd'>

</DetailInfo>
<Addresses>
</Addresses>
</Person>
</Root>

I want to add the  Rate and Grade to DetailInfo node based on person value and detail info value and
need to add address node to addresses node based on person value.
<Address>
<State></State>
<City></City>
<Country></Country>
</Address>

If anyone have clue pls help me.
Thanks
Ravi
Avatar of J_Mak
J_Mak

Are you using .NET to do this? Please explain your situation. Cheers.
If you are using JavaScript,

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load("test.xml");
personValue = 20;
detailValue = 'abcd';
var detailNode = xmlDoc.selectSingleNode("//DetailInfo[./Person[@value='" + personValue + "'] and ./DetailInfo[@value='" + detailValue + "']]");
var addressNode = detailNode.nextSibling;
var newNode = xmlDoc.createElement("Address");
var newNode2 = xmlDoc.createElement("State"); newNode2.text = "";
var newNode3 = xmlDoc.createElement("City"); newNode3.text = "";
var newNode4 = xmlDoc.createElement("Country"); newNode4.text = "";
newNode.appendChild(newNode2);
newNode.appendChild(newNode3);
newNode.appendChild(newNode4);
addressNode.appendChild(newNode);

The above strip of code selects a DetailInfo tag based on the given person value and detailinfo value, then selects the next sibling of the tag (which is the addresses tag) and appends the newly created elements to it.

Hope this helps.

Cheers,
Sathish
Avatar of pprasadravi

ASKER

i am sorry we are using asp.net and c#.
ASKER CERTIFIED SOLUTION
Avatar of J_Mak
J_Mak

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial