我對編程世界頗爲陌生(我是一個網絡人)。然而,我被要求開發一個爲控制檯應用程序配置xml文件的前端。控制檯應用程序從此xml文件讀取並打開瀏覽器的多個實例,每個監視器一個實例(總共6個監視器)。有4個控制中心,每個控制中心有6個監視器。每個控制中心運行一臺獨立的電腦。這些電腦不在網絡上,並且無法訪問彼此。我被告知我也不能使用數據庫。用VB.Net讀取和寫入一個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
現在這是我在哪裏卡住了。一旦用戶從組合框中選擇了其中一個監視器,我就需要獲取該監視器的所有信息。所以我需要browser_short_na,並且所有的url都基於monitor_id選擇。
我已經嘗試創建一個數據集,使用readxml加載xmlfile。然後我嘗試創建一個指向該數據集的數據視圖。試圖添加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也不爲表監視器一個DataRelation」。
我想我沒有正確處理url_list部分。
一旦所選監視器的所有信息都被讀取,我將在文本框/列表框中顯示用戶可以編輯的值。如果他們然後保存它應該寫入新的值到XML文件。他們還可以選擇添加額外的網址到列表中,甚至可以創建一個全新的監視器部分。
任何幫助/建議將不勝感激。
謝謝,我會給予一個去 – William
討厭成爲那些傢伙之一,但你能給我一個如何創建ViewModel對象的代碼示例嗎? – William
不知道你是否更新了編輯:我編輯了我的帖子btw :-) – GameAlchemist