XML文件中的所有數(shù)據(jù)都以字符串來(lái)存儲(chǔ)。當(dāng)一個(gè)程序載入XML文件時(shí),通常需要將數(shù)據(jù)轉(zhuǎn)換為更加適合程序的類(lèi)型。
例如,假設(shè)訂單裝運(yùn)日期存在一個(gè)XML文件里,則使用該文件的程序需要將字符串表示的數(shù)據(jù)轉(zhuǎn)換為一個(gè)DateTime對(duì)象。VB.NET提供了XMLConvert類(lèi)來(lái)協(xié)助這項(xiàng)工作,將XML轉(zhuǎn)換成強(qiáng)類(lèi)型的.NET數(shù)據(jù)。
XMLConvert位于System.XML命名空間中。其所有的方法和屬性都是共享的,因此不用將其實(shí)例化就可以訪問(wèn)他們。它包括了將XML字符串轉(zhuǎn)換成日期、雙精度、布爾值等其它數(shù)據(jù)類(lèi)型的方法。
拿下面這個(gè)XML文件為例,我們會(huì)演示如何使用XMLConvert類(lèi)來(lái)進(jìn)行類(lèi)型轉(zhuǎn)換:
?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("http://String").InnerText
Debug.WriteLine(newString)
Dim newInteger As Integer
newInteger = System.Xml.XmlConvert.ToInt32( _
xmlDoc.SelectSingleNode("http://Integer").InnerText)
Debug.WriteLine(newInteger)
Dim newDouble As Double
newDouble = System.Xml.XmlConvert.ToDouble( _
xmlDoc.SelectSingleNode("http://Double").InnerText)
Debug.WriteLine(newDouble)
Dim newDate As DateTime
newDate = System.Xml.XmlConvert.ToDateTime( _
xmlDoc.SelectSingleNode("http://Date").InnerText)
Debug.WriteLine(newDate)
所有的轉(zhuǎn)換方法都是基于XML Schema所定義的數(shù)據(jù)類(lèi)型。所轉(zhuǎn)換的XML數(shù)據(jù)必須與XML Schema標(biāo)準(zhǔn)一致。你可以在MSDN Library中找到更多的有關(guān)XML Schema類(lèi)型和.NET的信息。