我是一个相对新手的程序员(我是网络工程师)。然而,我被要求开发一个前端来配置一个控制台应用程序的xml文件。控制台应用程序从此xml文件中读取并打开多个浏览器实例,每个监视器一个实例(总共6个监视器)。有4个控制中心,每个中心有6个监视器。每个控制中心都运行在单独的计算机上。这些计算机不在网络上,也无法相互访问。我被告知不能使用数据库。
当我逐步执行代码并查看每个循环时,出现了错误消息:“url_na既不是DataColumn也不是表Monitor的DataRelation。”
我认为我没有正确处理url_list部分。
一旦读取所选监视器的所有信息,我将在文本框/列表框中显示值,用户可以编辑这些值。如果他们保存,则应将新值写入xml文件。他们还可以选择将其他网址添加到列表中,甚至创建一个全新的监视器部分。
非常感谢任何帮助/建议。
每个监视器将一次显示一个网站,特定监视器可能列出多个需要显示的站点,因此它们会定期更换。每个控制中心将显示不同的站点。
我的第一个问题:这个XML有效吗?
<ControlCenter>
<Monitor>
<monitor_id>0</monitor_id>
<browser_short_na>ie</browser_short_na>
<url_list>
<url>
<url_id>0</url_id>
<url_na><![CDATA[http://www.hmv.com]]></url_na>
<parameter><![CDATA[]]></parameter>
</url>
<url>
<url_id>1</url_id>
<url_na><![CDATA[http://www.amazon.com]]></url_na>
<parameter><![CDATA[]]></parameter>
</url>
<url>
<url_id>2</url_id>
<url_na><![CDATA[http://www.google.com]]></url_na>
<parameter><![CDATA[]]></parameter>
</url>
</url_list>
</Monitor>
<Monitor>
<monitor_id>1</monitor_id>
<browser_short_na>ie</browser_short_na>
<url_list>
<url>
<url_id>0</url_id>
<url_na><![CDATA[http://www.amazon.com]]></url_na>
<parameter><![CDATA[]]></parameter>
</url>
</url_list>
</Monitor>
</ControlCenter>
到目前为止,我所做的是打开XML文件并将所有监视器添加到下拉框中
Dim dom As New Xml.XmlDocument
dom.Load("test.xml")
ComboBox1.Items.Clear()
Dim monitorid As String = String.Empty
For Each node As Xml.XmlNode In dom.SelectNodes("//ControlCenter/Monitor/monitor_id")
monitorid = node.InnerText
ComboBox1.Items.Add(monitorid)
Next
现在我遇到了困难。一旦用户从组合框中选择一个显示器,我就需要获取该显示器的所有信息。因此,我需要浏览器短名称和所有基于所选monitor_id的URL。
我尝试过创建数据集,并使用readxml加载xml文件。然后我尝试创建一个指向该数据集的数据视图。尝试向数据视图添加RowFilter。
Dim val As String = ComboBox1.SelectedItem.ToString
Dim dsXmlFile As New DataSet
dsXmlFile.ReadXml("test.xml")
Dim dv As New DataView
dv.Table = dsXmlFile.Tables(0)
Dim drv As DataRowView
dv.RowFilter = "monitor_id = " & val
Dim url As String = ""
'Retrieve my values returned in the result
For Each drv In dv
url = drv("url_na")
Next
当我逐步执行代码并查看每个循环时,出现了错误消息:“url_na既不是DataColumn也不是表Monitor的DataRelation。”
我认为我没有正确处理url_list部分。
一旦读取所选监视器的所有信息,我将在文本框/列表框中显示值,用户可以编辑这些值。如果他们保存,则应将新值写入xml文件。他们还可以选择将其他网址添加到列表中,甚至创建一个全新的监视器部分。
非常感谢任何帮助/建议。