2013-02-07 54 views
1

我想要做的是將任何給定的.xml文件轉換爲VB代碼中的對象。我的程序將從網站抓取一個.xml文件,並將其更改爲一個對象。然後,我將針對從.xml文件創建的這些對象運行查詢。然後我將輸出這些查詢到數據網格。XML到VB中的對象

事情是我知道如何做到這一切與一個特定的.xml文件。我只是將引用放在.xml文件中的字段中以將其更改爲對象。但是,當涉及到更改任何.xml可能可以由用戶與許多不同的領域上傳,我迷失了方向。

有沒有辦法做到這一點?

+0

您不能將任意的XML轉換爲任意的對象,然後對它執行查詢。您可以做的是將XML作爲「XML」數據類型存儲到SQL Server數據庫中,然後對其執行XQuery查詢。 XML列甚至可以有索引來加速性能。 –

+0

@JohnSaunders:SQL Server似乎在這裏過度殺傷,嗯?針對XmlDocument的XPath看起來就像是開始的地方 - 隨着需求/性能的需求轉向SQL Server。 –

+0

如果XPath查詢已足夠,那麼我會使用LINQ to XML和XPath,或者可能只是使用LINQ to XML。如果需要XQuery,那麼我不認爲SQL Server Express太過分了。 –

回答

1

您可以使用System.XmlSystem.Reflection.Emit命名空間編寫XML編譯器。

但是你仍然要面對查詢結構直到運行時才知道的結構的挑戰。

更好的選擇可能是將xml加載到XmlDocument並針對它們運行XPath或LINQ查詢。 XPath最有可能是由於對象的海森堡性質。

Dim tDoc as XmlDocument = New XmlDocument 
Dim tNodes As XmlNodeList = Nothing 

tDoc.Load(file_path) 
tNodes = tDoc.SelectNodes("xpath query goes here") 
For Each tNode As XmlNode In tNodes 
    ' Do something with the Node 
Next 
+0

xpath的任何示例都會很有用,試圖讓它走向正軌,但似乎它讓我們讀取任何xml文件。 – Xnub

+0

編輯答案.. –