|
下面所寫(xiě)方法是在網(wǎng)絡(luò)資料的基礎(chǔ)上,經(jīng)過(guò)自己的實(shí)驗(yàn)而得出的。
使用VB.Net創(chuàng)建XML文件有兩種方法,下面逐一介紹:
假設(shè)要?jiǎng)?chuàng)建如下的XML文件:
-
<?xml version="1.0" encoding="UTF-8"?>
-
<root>
-
<Header>
-
<row>
-
<CRRNum/>
-
<RequestedBy/>
-
<CustomerNum/>
-
</row>
-
</Header>
-
<Details>
-
<row>
-
<ItemCode />
-
<ItemName />
-
<SerialNum />
-
<Warehouse />
-
</row>
-
</Details>
-
</root>
方法1:
首先聲明一個(gè)XmlDocument對(duì)象:
-
Dim xmlReport As XmlDocument
-
xmlReport = New XmlDocument
其次通過(guò)XmlDocument.LoadXML來(lái)獲得這個(gè)XML的初始結(jié)構(gòu),包括:Version,Encoding和根節(jié)點(diǎn):
-
xmlReport.LoadXML("<?xml version=""1.0"" encoding=""UTF-8""?><root/>")
這樣xmlReport就獲得了初始結(jié)構(gòu)了。剩下的工作就是要聲明XmlNode對(duì)象,逐級(jí)的使用XmlNode.AppendChild方法將各個(gè)節(jié)點(diǎn)串接起來(lái),具體的程序如下:
-
Dim xmlNode As XmlNode
-
Dim xmlHeader As XmlNode
-
Dim xmlDetail As XmlNode
-
Dim xmlRow As XmlNode
-
xmlHeader = xmlReport.CreateNode(XmlNodeType.Element, "Header", "")
-
xmlRow = xmlReport.CreateNode(XmlNodeType.Element, "row", "")
-
xmlNode = xmlReport.createElement_x("CRRNum")
-
xmlRow.AppendChild(xmlNode)
-
xmlNode = xmlReport.createElement_x("RequestedBy")
-
xmlRow.AppendChild(xmlNode)
-
xmlNode = xmlReport.createElement_x("CustomerNum")
-
xmlRow.AppendChild(xmlNode)
-
xmlHeader.AppendChild(xmlRow)
-
xmlRoot.AppendChild(xmlHeader)
-
xmlDetail = xmlReport.CreateNode(XmlNodeType.Element, "Details", "")
-
xmlRow = xmlReport.CreateNode(XmlNodeType.Element, "row", "")
-
xmlNode = xmlReport.createElement_x("ItemCode")
-
xmlRow.AppendChild(xmlNode)
-
xmlNode = xmlReport.createElement_x("ItemName")
-
xmlRow.AppendChild(xmlNode)
-
xmlNode = xmlReport.createElement_x("SerialNum")
-
xmlRow.AppendChild(xmlNode)
-
xmlDetail.AppendChild(xmlRow)
-
xmlRoot.AppendChild(xmlDetail)
-
xmlReport.AppendChild(xmlRoot)
方法2:
與方法一的主要區(qū)別就是,完全使用XML命名空間中的對(duì)象來(lái)創(chuàng)建,我本人更傾向于這種方法。
首先,聲明一個(gè)XmlDocument對(duì)象,同方法一。
其次,聲明一個(gè)XmlDeclaration對(duì)象:
-
Dim XmlDeclaration As XmlDeclaration
初始化這個(gè)XmlDeclaration對(duì)象:
-
XmlDeclaration = xmlReport.CreateXmlDeclaration("1.0", "", "")
-
XmlDeclaration.Encoding = "UTF-8"
剩下的操作同樣是創(chuàng)建XmlNode,方法同方法一。但是此時(shí)這個(gè)XML是沒(méi)有跟節(jié)點(diǎn)的,因此還需要一個(gè)額外的XMLNode對(duì)象,來(lái)充當(dāng)根節(jié)點(diǎn)的角色。
|