浅谈Visual Basic 9.0的XML字面量及后期绑定

开发
本文将介绍Visual Basic 9.0的XML字面量和XML后期绑定。Visual Basic 9.0专门为XML集成设置了一个开发组,力求将XML语言与Visual Basic语言完全结合,使Visual Basic成为全行业对XML支持最佳的开发工具。

Visual Basic 9.0 新特性都基于微软的XLinq——新一代支持语言集成查询的XML框架。使用XLinq可以按照XML逻辑树状对象模型来建立和访问。关于XLinq我们不想过多介绍,有兴趣的读者可以参阅相关资料,我们要介绍的是,VB9为XLinq所做的惊人语法。

XML字面量

你有没有想过在一种编程语言里创建XML可以达到多么简单?Visual Basic 9.0支持直接XML文档的原始结构作为字面量,也就是说,Visual Basic 9.0里可以直接写:

以下是引用片段:

  1. Dim x = Mordern Operating Systems  

这么写,VB不仅仅吧它当作一个字符串,而是可以帮你做XML结构的检查,而且编译器了解这一XML的结构,因此会有智能感知的帮助。你可以将XML字面量分成多行编写,直到遇到根元素的终结(例子中的)才判断XML字面量写完,因此无须使用续行符。这也就是说,VB的XML可以表达一个以单元素为根的XML结构片断。如果XML字面量仅仅是这样,就没有多大意思了。我们可以让这个XML字面量中的数据动态化:

以下是引用片段:

  1.  Dim rootName = "Books"   
  2. Dim b As New Book {Author :"A. S. Tanenbaum", Title :"Mordern Operating Systems", ID :20 }   
  3. Dim x = <(rootName)>  

我们观察一下上面的代码,元素名称Books可以用变量来指定,只要在括号组成的“洞”填入即可,相应的关闭标记则变成这很重要,因为元素名称已经是动态决定的了,所以引入特定写法根据位置来关闭相应标记。我们看到,attribute的值也可以用洞来填入(attribute的名称也可以用相同语法),但是标记的Inner Text部分则不能使用洞,而是要使用这种类似于ASP.net数据绑定的语法,这称为代码嵌入。 这已经很强大并且激动人心了,不是吗?但还不够,我们可以把查询包含的语法嵌入到XML字面量中。假设我们有一组Book要生成:

以下是引用片段: 

  1. Dim books = GetBooks() '假设用别的代码生成了Book类型的集合  
  2.  
  3. Dim x = _ 
  4. <(rootName)> 
  5.   <%= Select   
  6.     <Book author=(b.Author)><%= b.Title %></Book> 
  7.   From b In books Where b.ID > 5 %> 
  8. </> 

我们用代码嵌入的手段,将类似于SQL的查询包含直接插入到XML字面量中去了。其结果很显然,是生成了下的列表。使用XML字面量,我们可以非常灵活地组合和生成我们想要得XML;也可以把XML直接拷贝粘贴到VB的IDE中,稍加修改而成为你自己的XML生成器。XML字面量还完善支持XML的namespace等特性。有了VB9,还需要XSLT吗?难说……

XML后期绑定

现在我们有了生成XML的手段,那么访问XML的手段呢?Visual Basic 9.0提供了XML后期绑定,我们可以用最简单的语法来访问XML。假设我们有刚才生成的Books文档,则可以用下列语法直接访问到它的某一个Book

以下是引用片段:

  1.  Dim title = x.Books.Book(0).InnerText   
  2. Dim author = x.Books.Book.@author  

'这语法很类似于XPath,我们还可以做到XPath的//的功效:

For Each Dim book In x.Books...Book

'遍历每一个Book元素

只要3个点,就可以把Books下边所有层次的Book都找到,然后直接就可以遍历。当然我们还可以用查询包含,使用SQL语法来查询XML文档。总之,在Visual Basic 9.0中使用XML会是一种***的体验。

现在Visual Basic 9.0的新特性已经介绍完了,这确实是一个有着巨大进步的版本,同时特别注重用户体验的改善,保持着简单易用的特点。

【相关文章】

  1. Visual Basic 9.0概述
  2. Visual Basic 9.0之动态标识符
  3. C#和Visual Basic渐行渐远之匿名类型
  4. Visual Basic静态数组的定义方法
  5. Visual Basic 未来已定
责任编辑:彭凡 来源: IT专家网论坛
相关推荐

2021-10-09 07:10:30

Go字面量组合

2009-10-19 15:07:17

Visual Basi

2009-09-02 16:21:17

Visual BasiC#语言

2020-03-16 09:25:10

微软浏览器Windows

2012-05-30 15:57:49

ERP项目运维

2009-10-19 14:19:24

Visual Basi

2020-04-02 09:01:54

JSES 6开发

2020-03-31 16:30:09

JS语言ES 6

2009-12-10 14:11:54

Visual Basi

2009-03-11 10:00:50

Windows 7VB

2012-05-29 16:22:02

SpringMVC

2009-10-09 17:16:53

VB.NET

2009-10-09 17:33:11

VB.NET

2009-08-10 16:47:45

Visual C#数据

2022-06-08 08:01:28

模板字面量类型

2010-05-14 12:00:36

2010-09-29 14:06:09

Visual Basi

2009-12-03 16:50:58

Visual Basi

2009-12-11 14:50:14

Visual Basi

2009-09-04 10:10:33

Visual Basi
点赞
收藏

51CTO技术栈公众号