<?xml version='1.0'?><AvailableTests> <TestItem Name="Test1"> <Description> Test Description </Description> <Parameters> <Param Name="First Parameter" Type="Textbox"> 0000000000 </Param> <Param Name="Second Parameter" Type="Textbox"> 0000000000 </Param> <Param Name="Third Parameter" Type="FileLocation"> c:\My Documents\File.txt </Param> </Parameters> </TestItem> <TestItem Name="Test2"> <Description> Test2's description </Description> <Parameters> <Param Name="First Parameter" Type="Textbox"> 0000000000 </Param> <Param Name="Second Parameter" Type="Textbox"> 0000000000 </Param> <Param Name="Third Parameter" Type="FileLocation"> c:\My Documents\File.txt </Param> <Param Name="Fourth Parameter" Type="Checkbox"> checked </Param> </Parameters> </TestItem></AvailableTests>
dim TestItems as new List(of XMLElement)Dim doc As XmlDocument = New XmlDocumentdoc.Load(filename)Dim nodeList As XmlNodeList = doc.GetElementsByTagName("TestItem")For Each elem As XmlElement In nodeList TestItems.Add(elem)NextFor Each elem As XmlElement In nodeList TestItems.Add(elem)Next
Dim thisNode As XmlElement = TestItem(index)Dim nodeList As XmlNodeList = thisNode.GetElementsByTagName("Parameters")For Each elem As XmlElement In nodeList If elem.HasChildNodes Then For Each child As XmlElement In elem If child.GetAttribute("Name") = "Third Parameter" Then child.InnerText = Dlog.FileName End If Next End IfNext
Even by changing thisNode - without assigning its values back to TestItem(index), innertext values for third param of both items in the list has changed to Dlog.FileName. The above is my latest attempt. I have also triedthe following - with the same results
Campaign(currentCampaign).SelectSingleNode("//Parameters/Param[@Name='Third Parameter']").InnerText = Dlog.FileName