Imports System.IO
創(chuàng)新互聯(lián)是一家專業(yè)提供平安企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都網(wǎng)站建設(shè)、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為平安眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim f As New FileInfo("d:\doc.xml")
If f.Exists = False Then
f.Create()
f.Refresh()
End If
Dim s As String = ""
Dim sw As StreamWriter = f.CreateText()
s = "?xml version=""1.0"" encoding=""GB2312""?"
sw.WriteLine(s)
sw.WriteLine("doc")
sw.WriteLine(" assembly")
sw.WriteLine("userId34/userId")
sw.WriteLine("userName張三/userName")
sw.WriteLine("qxbz1/qxbz")
sw.WriteLine(" /assembly")
sw.WriteLine("/doc")
sw.Flush()
sw.Close()
Process.Start("d:\doc.xml")
End Sub
End Class
Dim?xmlDoc?As?New?System.Xml.XmlDocument
xmlDoc.Load("c:\xml.xml")?'載入xml文件
Dim?Items?As?Xml.XmlNodeList?=?xmlDoc.DocumentElement.SelectNodes("http://record/item")?'參數(shù)為xpath查詢串,前面斜杠,//:表示任何結(jié)點(diǎn),/:表示根結(jié)點(diǎn)
For?Each?s?As?Xml.XmlNode?In?Items
Console.WriteLine(s.Attributes.GetNamedItem("id").Value??vbTab??s.InnerText)
Next
先讀取節(jié)點(diǎn)Match,然后讀取節(jié)點(diǎn)內(nèi)的各個(gè)屬性值。 再進(jìn)行節(jié)點(diǎn)中的子節(jié)點(diǎn)SetSetName的讀取,讀取方式也是直接讀取各個(gè)屬性值。
DataSet 和 DataTable都有現(xiàn)成的方法:WriteXml
DataTable tb = this.dataGridView1.DataSource as DataTable;
if(tb != null)
{
tb.WriteXml(@"C:\table.xml",true);
return;
}
DataView dv = this.dataGridView1.DataSource as DataView;
if(dv != null)
{
dv.Table.WriteXml(@"C:\table.xml",true);
return;
}
IList list = this.dataGridView1.DataSource as IList;
if(list != null)
{
//to do,如果是IList,就要你自己想辦法導(dǎo)出了
//XmlDocument or XmlWriter都可以考慮
}
使用DataSet類來(lái)完成這項(xiàng)任務(wù)。
DataSet對(duì)象在傳輸時(shí),是以XML流的形式而不是以COM形式傳輸?shù)?。DataSet對(duì)象可以讀取XML數(shù)據(jù)文件或者數(shù)據(jù)流,從而將樹(shù)型結(jié)構(gòu)的XML數(shù)據(jù)轉(zhuǎn)換成關(guān)系型的數(shù)據(jù),如表(DataTable)、列(DataColumn)、行(DataRow)等。
在這個(gè)實(shí)例中,我們將XML文件命名為“xmlfile.xml”,具體內(nèi)容如下:
?xml version=\"1.0\"standalone=”yes”?
Detail
Person
NameManish/Name
Age22/Age
/Person
/Detail \'用VB.NET讀寫(xiě)XML文件
C1aSS WriteXML
Shared Sub main()
Dim obj DataSet As New System.Data.DataSet()
Dim strVirtualPath As String=”t.xml”
\'載入XML文件DataSet
objDataSet.ReadXml(”xmlfile.xml”)
\'通過(guò)控制器讀取XML內(nèi)容
Console.Write(objDataSet.GetXml)
\'從原XML文件中得到數(shù)據(jù)
ConSOle.Write(”Enter Name:”)
Dim fname,age As String
fname=ConS01e.ReadLine
\'寫(xiě)入你希望的代碼
ConS01e.Write(”Enter Age:”)
age=Console.ReadLine
ConS0le.Write(fname&age)
Dim v(1)As String
v(0)=fname
V(1)=age
\'增加數(shù)據(jù)DataSet
objDataSet.Tables(0).Rows.Add(V)
\'更新XML文件
objDataSet.WriteXml(”xmlfile.xml”)
Console.Write(obj DataSet.GetXml)
End Sub
End C1ass
運(yùn)行該程序有兩種方式,一種是在Microso~VS.NET框架中編譯完后運(yùn)行;另一種則是在仿DOS的Command窗口中運(yùn)行。在第一種方式中,必須加上System、System.Data、System.xML的引用。具體方法為:先創(chuàng)建一個(gè)空的項(xiàng)目,然后加入這個(gè)文件名字;在“解決方案資源管理器”中加入引用,此時(shí)需要選擇相應(yīng)的.dll文件;注意,xmlfile.xml文件應(yīng)該放在工程的/bin目錄下面。我們可以輸出結(jié)果也可以用瀏覽器直接查看改變后的XML文件。在第二種方式中,選擇桌面的“程序”一“Microso~Visual Studio.NET”一“VisualStudio.NET工具”一“Visual Studio.NET命令提示”命令,在DOS命令提示框敲入命令:[Page]
vbc/r:system.d11/r:system.data.d11/r:system.xml.d11 xml.vb其中,程序名為xml.vb,這里的3個(gè).dll文件都是必須調(diào)用的庫(kù)文件。應(yīng)該在存放VB.NET文件的目錄中運(yùn)行上述命令,否則找不到相應(yīng)的程序,當(dāng)然設(shè)置PATH也可以做到。此外,Xml_vb文件應(yīng)該和XML文件放在同一目錄下面。每次運(yùn)行此程序都會(huì)往文件中寫(xiě)進(jìn)同樣的內(nèi)容,都是寫(xiě)入Person/,運(yùn)行一次寫(xiě)一行。其實(shí),我們只要稍微修改一下這個(gè)程序,就可以往XML中寫(xiě)入我們所需要的數(shù)據(jù)。
分享標(biāo)題:關(guān)于vb.net讀寫(xiě)xml的信息
文章轉(zhuǎn)載:http://vcdvsql.cn/article28/hsjhcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站策劃、企業(yè)建站、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站收錄、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)