I'm having problems with using XML in my program...
First of all, I'm using Visual Basic Express 2008.
I have an XML document such as the following:
<?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>	
In my program, I load each TestItem (along with it's innerXML) as an 
XMLElement into a list(Of XMLElement).
dim TestItems as new List(of XMLElement)
Dim doc As XmlDocument = New XmlDocument
doc.Load(filename)
Dim nodeList As XmlNodeList = doc.GetElementsByTagName("TestItem")
For Each elem As XmlElement In nodeList
  TestItems.Add(elem)
Next
For Each elem As XmlElement In nodeList
  TestItems.Add(elem)
Next
Typically the above code loads XMLElements into the List (two of each). Now, whenever I try to change, say, the innertext of the third param, it
 changes the innertext of the third param for both items (that is the same) in the list!
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 If
Next
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
I do not know how to get around it...
Any help will be appreciated.