XML 作为一种通用的,跨平台的数据交换格式,在程序界是公认的事实;而 .Net Framework 以前的版本中麻烦的 XML 操作,常常令程序员心生不快。记得以前试图生成一个 XML 文件,无非是两种模式:用 StringBuilder 拼接 XML 字符串,或者是用 XMLDocument / XMLWriter 进行 DOM 操作。StringBuilder 是有足够的速度,但是没有稳定性的保障,需要多次过滤以保护 XML 文件的完整性。而使用 MSXML 的包装 System.Xml 进行操作,又未免太麻烦了些。
XML 字面量功能是 Visual Basic 9 为解放程序员劳力作出的一项非常大的改进,它可让程序员直接在代码中嵌入 XML 进行生成操作。借助编译器的力量,XML 字面量调用 System.Xml.Linq 进行 XML 的动态生成。在 C# 中,虽然同样可以调用这个命名空间下的类进行生成,但是远没有 Visual Basic 的模式轻松,省力。举一个简单的范例,用于动态生成一个 XML 文档:
旧的 String Builder 模式:
Imports System.Text
Public Function BuildXMLFromStringBuilder() Function BuildXMLFromStringBuilder(Name As String, Age As Integer) As String
Dim XMLBuilder As New StringBuilder
With XMLBuilder
.AppendLine("<Person>")
.Append("<Name>")
.Append(Name)
.AppendLine("</Name>")
.Append("<Age>")
.Append(Age)
.AppendLine("</Age>")
.AppendLine("</Person>")
End With
Return XMLBuilder.ToString()
End Function |
旧的 XML DOM 模式:
Public Function BuildXMLFromXmlDom() Function BuildXMLFromXmlDom(ByVal Name As String, ByVal Age As Integer) As String
Dim XMLDocument As New XmlDocument
Dim RootElement As XmlElement = XMLDocument.CreateElement("Person")
Dim NameElement As XmlElement = XMLDocument.CreateElement("Name")
Dim AgeElement As XmlElement = XMLDocument.CreateElement("Age")
With RootElement
.AppendChild(NameElement)
.AppendChild(AgeElement)
End With
With NameElement
.Value = Name
End With
With AgeElement
.Value = CStr(Age)
End With
XMLDocument.AppendChild(RootElement)
Return XMLDocument.ToString()
End Function |
[1] [2] 下一页

【责编:John】