对XML数据使用XMLConvert
xml文件中的所有数据都以字符串来存储。当一个程序载入xml文件时,通常需要将数据转换为更加适合程序的类型。
例如,假设订单装运日期存在一个xml文件里,则使用该文件的程序需要将字符串表示的数据转换为一个datetime对象。vb.net提供了xmlconvert类来协助这项工作,将xml转换成强类型的.net数据。
xmlconvert位于system.xml命名空间中。其所有的方法和属性都是共享的,因此不用将其实例化就可以访问他们。它包括了将xml字符串转换成日期、双精度、布尔值等其它数据类型的方法。
拿下面这个xml文件为例,我们会演示如何使用xmlconvert类来进行类型转换:
<?xml version="1.0" encoding="utf-8" ?>
<data>
<string>test</string>
<integer>123</integer>
<double>1234.56</double>
<date>2003-01-01/</date>
</data>
这段代码在c:\temp目录中寻找名为convert.xml的xml文件:
dim xmldoc as new system.xml.xmldocument()
xmldoc.load("c:\temp\convert.xml")
dim newstring as string
newstring = xmldoc.selectsinglenode("//string").innertext
debug.writeline(newstring)
dim newinteger as integer
newinteger = system.xml.xmlconvert.toint32( _
xmldoc.selectsinglenode("//integer").innertext)
debug.writeline(newinteger)
dim newdouble as double
newdouble = system.xml.xmlconvert.todouble( _
xmldoc.selectsinglenode("//double").innertext)
debug.writeline(newdouble)
dim newdate as datetime
newdate = system.xml.xmlconvert.todatetime( _
xmldoc.selectsinglenode("//date").innertext)
debug.writeline(newdate)
所有的转换方法都是基于xml schema所定义的数据类型。所转换的xml数据必须与xml schema标准一致。你可以在msdn library中找到更多的有关xml schema类型和.net的信息。