• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 267
  • Last Modified:

How can I modify an xml value based on the attribute value.

It does not look like its as easy as selectsinglenode. I could be wrong though.
Example....

XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("myfile.xml");            

From......                  
                        
<root>
    <properties>
        <property name="index1">myvalue1</property>
        <property name="index2">myvalue2</property>
        <property name="index3">myvalue3</property>
      </properties>
</root>


To.... (notice index2 value has changed)

<root>
    <properties>
        <property name="index1">myvalue1</property>
        <property name="index2">myvalue2-MODIFIED</property>
        <property name="index3">myvalue3</property>
      </properties>
</root>
0
silentthread2k
Asked:
silentthread2k
1 Solution
 
Carl TawnSystems and Integration DeveloperCommented:
You should be able to do something like:
XmlNode node = xmldoc.SelectSingleNode("/root/properties/property[@name='index2']");
if (node != null)
{
    node.InnerText = node.InnerText + "-MODIFIED";
}

// save document, etc

Open in new window

0
 
Sudhakar PulivarthiProject Lead - EngineeringCommented:
Hi,
You can also do it with InnerXml property also.
node.InnerXml= node.InnerXml+ "-MODIFIED";
0
 
silentthread2kSenior Software EngineerAuthor Commented:
:-)
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now