VB中XML到对象的转换
我想做的是获取任何给定的.xml文件,并将其转换为VB代码中的对象。我的程序将从网站上获取一个.xml文件,并将其更改为一个对象。然后,我将对这些从.xml文件创建的对象运行查询。然后将这些查询输出到数据网格 问题是我知道如何使用一个特定的.xml文件来完成所有这些。我只是将对.xml文件中字段的引用更改为对象。但是,当涉及到更改任何可以由具有许多不同字段的用户上传的.xml时,我就不知所措了VB中XML到对象的转换,xml,vb.net,object,serialization,deserialization,Xml,Vb.net,Object,Serialization,Deserialization,我想做的是获取任何给定的.xml文件,并将其转换为VB代码中的对象。我的程序将从网站上获取一个.xml文件,并将其更改为一个对象。然后,我将对这些从.xml文件创建的对象运行查询。然后将这些查询输出到数据网格 问题是我知道如何使用一个特定的.xml文件来完成所有这些。我只是将对.xml文件中字段的引用更改为对象。但是,当涉及到更改任何可以由具有许多不同字段的用户上传的.xml时,我就不知所措了 还有其他方法吗?您可以使用System.XML和System.Reflection.Emit名称空间编
还有其他方法吗?您可以使用
System.XML
和System.Reflection.Emit
名称空间编写一个XML编译器
但您仍将面临查询对象的挑战,这些对象的结构直到运行时才知道
更好的选择可能是将xml加载到XmlDocument
中,然后对它们运行XPath或LINQ查询。考虑到对象的Hisenburgian性质,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
您可以使用
System.XML
和System.Reflection.Emit
名称空间编写XML编译器
但您仍将面临查询对象的挑战,这些对象的结构直到运行时才知道
更好的选择可能是将xml加载到XmlDocument
中,然后对它们运行XPath或LINQ查询。考虑到对象的Hisenburgian性质,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
您不能将任意XML转换为任意对象,然后对其进行查询。您可以做的是将XML作为“XML”数据类型存储到SQL Server数据库中,然后对其执行XQuery查询。XML列甚至可以有索引来提高性能。@JohnSaunders:SQL Server在这里似乎有些过火了,是吗?XPath与XmlDocument的对比似乎是一个开始——根据需求/性能需求进入SQL Server。如果XPath查询足够,那么我将使用LINQ到XML和XPath,或者可能只是LINQ到XML。如果需要XQuery,那么我不认为SQLServerExpress有多过分。您不能将任意XML转换为任意对象,然后对其进行查询。您可以做的是将XML作为“XML”数据类型存储到SQL Server数据库中,然后对其执行XQuery查询。XML列甚至可以有索引来提高性能。@JohnSaunders:SQL Server在这里似乎有些过火了,是吗?XPath与XmlDocument的对比似乎是一个开始——根据需求/性能需求进入SQL Server。如果XPath查询足够,那么我将使用LINQ到XML和XPath,或者可能只是LINQ到XML。如果需要XQuery,那么我不认为SQL Server Express有多过分。任何xpath示例都是有用的,尝试让它运行起来,但让它读取任何xml文件似乎是一件让我头疼的事。任何xpath示例都是有用的,尝试让它运行起来,但让它读取任何xml文件似乎是一件让我头疼的事。