WEB开发网
开发学院软件开发C语言 二十行C#代码打造Ruby Markup Builder 阅读

二十行C#代码打造Ruby Markup Builder

 2010-09-30 21:05:26 来源:WEB开发网   
核心提示: varxmlDoc=newXElement("persons",newXElement("person","Tom",newXAttribute("age",10)),newXElement("person

var xmlDoc = new XElement("persons", 
  new XElement("person", 
    "Tom", 
    new XAttribute("age", 10)), 
  new XElement("person", 
    "Jerry", 
    new XAttribute("age", 8))); 

虽然LINQ to XML一直是所谓C# 3.0中LINQ特性的一部分,与LINQ to SQL,LINQ to Object及LINQ to……某个别的并列,但我始终认为LINQ to XML实则还是LINQ to Object的一种特殊形式,只是它用于操作XML而已。它的一切都是System.Xml.Linq命名空间下相关类库(如XElement)在起作用,不关LINQ什么事情。XElement等相关类型大大简化了我们的开发,与DOM API相比,无论是XML的构造还是读取都容易了许多。不过俗话说得好:“不怕不识货,就怕货比货”,这样的API与Ruby Markup Builder相比还是有明显差距。请看:

builder = Builder::XmlMarkup.new 
xml = builder.persons { |b| 
  b.person("Tom", :age => "10") 
  b.person("Jerry", :age => "8") 
}

请看上面这段代码,它自然没有使用Ruby语言的标准着色方式。我着色的目的是体现这个构造方式中的“噪音”——也就是与XML内容无关的部分。从中可以发现,Ruby不愧是一种噪音较少的语言,如果您尝试使用这个方式来观察C#中LINQ to XML的做法,就会发现两者之间的确有明显的差距。当然,如果使用VB.NET的XML Literal可能噪音也很少,但是在我看来,XML Literal在XML构造方面的表现有些罗嗦,例如它需要开发人员同时提供元素的开始标签和闭合标签,可能在IDE的帮助下此类代码输入较为简单,但是代码还是略显冗余。

上一页  1 2 3 4  下一页

Tags:十行 代码 打造

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接