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>
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
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
Any help will be appreciated.
Replies
Know the answer? Post it — somebody with the same question will find it here.