I already implemented to create the XML file below with XmlTextWriter when application initialization.
And know I don't know how to update the childNode id value with XmlDocument & XmlNode.
Is there some property to update the id value? I tried InnerText but failed. thank you.
<?xml version="1.0" encoding="UTF-8"?> <Equipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <License licenseId="" licensePath=""/> <DataCollections> <GroupAIDs> <AID id="100"> <Variable id="200"/> <Variable id="201"/> </AID> <AID id=""> <Variable id="205"/> </AID> <AID id="102"/> </GroupAIDs> <GroupBIDs> <BID id="2000"> <AID id="100"/> </BID> <BID id="2001"> <AID id="101"/> <AID id="102"/> </BID> </GroupBIDs> <GroupCIDs> <BID id="8"/> <BID id="9"/> <BID id="10"/> </GroupCIDs> </DataCollections> </Equipment>
A simple technique for changing the value of a node is to use node. Value = "new value"; . The following table lists the node types that this single line of code works on and exactly what data for that node type is changed. The value of the attribute.
The XmlDocument class does not implement IDisposable , so there's no way to force it to release it's resources at will. If you need to free that memory the only way to do that would be xmlDocument = null; and garbage collection will handle the rest.
You need to do something like this:
// instantiate XmlDocument and load XML from file XmlDocument doc = new XmlDocument(); doc.Load(@"D:\test.xml"); // get a list of nodes - in this case, I'm selecting all <AID> nodes under // the <GroupAIDs> node - change to suit your needs XmlNodeList aNodes = doc.SelectNodes("/Equipment/DataCollections/GroupAIDs/AID"); // loop through all AID nodes foreach (XmlNode aNode in aNodes) { // grab the "id" attribute XmlAttribute idAttribute = aNode.Attributes["id"]; // check if that attribute even exists... if (idAttribute != null) { // if yes - read its current value string currentValue = idAttribute.Value; // here, you can now decide what to do - for demo purposes, // I just set the ID value to a fixed value if it was empty before if (string.IsNullOrEmpty(currentValue)) { idAttribute.Value = "515"; } } } // save the XmlDocument back to disk doc.Save(@"D:\test2.xml");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With