到目前为止,您可能已听说过LINQ(语言集成查询),它是Visual Studio 2008中附带的新查询技术。启用LINQ的语言(如Visual Basic)为您提供了一组丰富的查询运算符,您可以将这些运算符应用到各种数据源,如内存中的集合、数据库、数据集和XML。仅这一项技术就已经非常优秀了,但Visual Basic 9.0实际上提供的技术远不止此,它使XML成为直接集成到语言中的一流数据类型。
现在您可能想知道为什么需要将 XML 数据类型直接集成到Visual Basic中。当今,许多应用程序都在使用XML进行存储和数据传输。XML由于其灵活性和简易性而在业内广泛采用,而且它还用于许多执行存储和数据传输功能的应用程序。由于 XML具有自描述性(即数据的结构包括在数据中),因此它特别适合在系统之间传输数据。而且,与为各种自定义文件格式编写分析规则相比,阅读在XML标记内部构造的数据要容易得多。
但XML的问题是,开发人员从来没有非常方便地使用过它。令人费解和不一致的API(如文档对象模型 (DOM))及语言(如XSLT和XQuery)导致编写的许多枯燥代码通常难以阅读和理解。但在引入LINQ和Visual Basic 9.0之后,XML的开发变得容易多了。在本专栏中,将探讨当前的XML 编程体验,LINQ 如何改进体验,以及在使用XML时 Visual Basic如何提供更多支持。
使用DOM
首先,假设需要在XML中写出一个客户列表。我的客户列表具有下列属性:FirstName、LastName、Address、City、State和ZipCode。在将列表转换为XML时,看上去应如图1 所示。
Figure1XML中的客户列表属性
<Customers>
<Customer FirstName="Jane" LastName="Dow">
<Address>123 Main St</Address>
<City>Redmond</City>
<State>WA</State>
<ZipCode>10104</ZipCode>
</Customer>
<Customer FirstName="Matt" LastName="Berg">
<Address>456 First St</Address>
<City>Seattle</City>
<State>WA</State>
<ZipCode>10028</ZipCode>
</Customer>
</Customers>