VB NET与XML之间的操作
- 格式:pdf
- 大小:106.51 KB
- 文档页数:4
利用VB操作XML数据在VB中,有几种方法可以操作XML数据。
下面将介绍一些常用的方法:1. 创建XML文档:可以使用XMLTextWriter类或XDocument类来创建XML文档。
使用XMLTextWriter类:```vbDim writer As New XmlTextWriter("C:\path\to\file.xml", System.Text.Encoding.UTF8)writer.WriteStartDocument(True)writer.Formatting = Formatting.Indentedwriter.Indentation = 2writer.WriteStartElement("RootElement")writer.WriteEndElementwriter.WriteEndDocumentwriter.Close```使用XDocument类:```vbDim doc As XDocument = New XDocumentNew XDeclaration("1.0", "utf-8", "yes"),New XElement("RootElement")doc.Save("C:\path\to\file.xml")```2. 读取XML文档:可以使用XmlDocument类、XmlReader类或XDocument类来读取XML文档。
使用XmlDocument类:```vbDim doc As New XmlDocumentdoc.Load("C:\path\to\file.xml")Dim root As XmlNode = doc.SelectSingleNode("RootElement")```使用XmlReader类:```vbDim reader As XmlReader =XmlReader.Create("C:\path\to\file.xml")While reader.ReadIf reader.NodeType = XmlNodeType.Element AndAlso = "RootElement" Then'处理根元素End IfEnd Whilereader.Close```使用XDocument类:```vbDim doc As XDocument = XDocument.Load("C:\path\to\file.xml") Dim root As XElement = doc.Element("RootElement")```使用XmlDocument类:```vbDim doc As New XmlDocumentdoc.Load("C:\path\to\file.xml")Dim root As XmlNode = doc.SelectSingleNode("RootElement")Dim childElement As XmlElement =doc.CreateElement("ChildElement")Dim attribute As XmlAttribute =doc.CreateAttribute("AttributeName")attribute.Value = "AttributeValue"childElement.Attributes.Append(attribute)root.AppendChild(childElement)doc.Save("C:\path\to\file.xml")```使用XmlReader类:```vbDim reader As XmlReader =XmlReader.Create("C:\path\to\file.xml")While reader.ReadIf reader.NodeType = XmlNodeType.Element AndAlso = "RootElement" ThenDim childElement As XmlWriter =reader.CreateElement("ChildElement")writer.WriteAttributeString("AttributeName", "AttributeValue")writer.WriteEndElementEnd IfEnd Whilereader.Close```使用XDocument类:```vbDim doc As XDocument = XDocument.Load("C:\path\to\file.xml") doc.Root.Add(New XElement("ChildElement", NewXAttribute("AttributeName", "AttributeValue")))doc.Save("C:\path\to\file.xml")```以上是操作XML数据的一些基本方法,可以根据需求进行扩展。
程序员经常需要在其应用程序中处理XML数据。
在处理XML 数据时,转义是一个非常重要的问题。
XML转义是指将XML文件中的特殊字符转换为对应的实体引用,以便在XML文档中正常显示这些特殊字符。
本文将介绍如何在中进行XML转义,同时提供一些常见的转义方法和示例。
一、特殊字符的转义方法在XML中,以下五个字符被定义为特殊字符:、<、>、"和'。
这些特殊字符如果直接出现在XML文档中,将会被解释为XML标记,而不是文本数据。
需要将这些特殊字符转义为对应的实体引用,以便在XML文档中正常显示。
下面是五个特殊字符在XML中的实体引用:1. 转义为 amp;2. < 转义为 lt;3. > 转义为 gt;4. " 转义为 quot;5. ' 转义为 apos;二、在中进行XML转义在中进行XML转义非常简单。
可以使用System.Security.SecurityElement.Escape方法来对字符串进行XML 转义。
该方法可以将字符串中的特殊字符替换为对应的实体引用。
示例代码如下所示:```Dim originalString As String = "This is a lt;testgt; string with quot;specialquot; characters"Dim escapedString As String =System.Security.SecurityElement.Escape(originalString) Console.WriteLine(escapedString)```运行以上代码,会得到如下输出:```textThis is a amp;lt;testamp;gt; string withamp;quot;specialamp;quot; characters```从输出结果可以看出,原始字符串中的特殊字符已经被成功转义为对应的实体引用。
读写XML配置⽂件XML配置⽂件代替INI()Imports System.DataPublic Class CLSReadXMLPrivate servername As String'服务器名Private Dbname As String'数据库名称Private Uid As String'数据库⽤户名Private pwd As String'数据库密码Private DSXml As New DataSetPrivate Xpath As String'Xml⽂件路径Sub New(ByVal str As String)Xpath = str'获得xml⽂件存储路径End Sub#Region "属性⽤于写⼊和得到xml⽂件内容的属性"Public Property Getserver()GetReturn servernameEnd GetSet(ByVal Value)servername = ValueEnd SetEnd PropertyPublic Property Getdbname()GetReturn DbnameEnd GetSet(ByVal Value)Dbname = ValueEnd SetEnd PropertyPublic Property Getpwd()GetReturn pwdEnd GetSet(ByVal Value)pwd = ValueEnd SetEnd PropertyPublic Property GetdUid()GetReturn UidEnd GetSet(ByVal Value)Uid = ValueEnd SetEnd Property#End Region#Region "⽅法读写xml⽂件的⽅法当xml⽂件不存在时⾃动创建⼀xml⽂件"'读取xml⽂件内容Public Function ReadXml() As BooleanTryDSXml.ReadXml(Xpath)servername = DSXml.Tables(0).Rows(0)("server")Dbname = DSXml.Tables(0).Rows(0).Item("Dbname")Uid = DSXml.Tables(0).Rows(0).Item("uid")pwd = DSXml.Tables(0).Rows(0).Item("pwd")Return TrueCatch ex As ExceptionThrow exReturn FalseEnd TryEnd Function'如果xml⽂件不存在的时候创建⼀xml⽂件Public Function WriteXml() As BooleanDim DT As New DataTableTryDSXml.Tables.Clear()DSXml.Clear()'给定table列框架DT.Columns.Add("server", GetType(String))Dt.Columns.Add("DBname", GetType(String))Dt.Columns.Add("uid", GetType(String))Dt.Columns.Add("pwd", GetType(String))Dim DR As DataRowDR = Dt.NewRowDR.Item("server") = servername DR.Item("DBname") = Dbname DR.Item("uid") = UidDR.Item("pwd") = pwdDt.Rows.Add(DR)DSXml.Tables.Add(Dt)DSXml.AcceptChanges()DSXml.WriteXml(Xpath)Return TrueCatch ex As ExceptionThrow exReturn FalseEnd TryEnd Function#End RegionEnd Class。
读取写入XML文件Public Class CSysXMLDim mXmlDoc As New System.Xml.XmlDocumentPublic XmlFile As StringPublic Sub New(ByVal File As String)MyClass.XmlFile = FileMyClass.mXmlDoc.Load(MyClass.XmlFile) '加载配置文件End Sub'功能:取得元素值'参数:node--节点 element--元素名'返回:元素值字符型' $--表示出错误Public Function GetElement(ByVal node As String, ByVal element As String) As StringOn Error GoTo ErrDim mXmlNode As System.Xml.XmlNode = mXmlDoc.SelectSingleNode("//" + node)'读数据Dim xmlNode As System.Xml.XmlNode = mXmlNode.SelectSingleNode(element)Return xmlNode.InnerText.T oStringErr:Return "$"End Function''功能:保存元素值'参数:node--节点名称 element--元素名 val--值'返回:True--保存成功 False--保存失败Public Function SaveElement(ByVal node As String, ByValelement As String, ByVal val As String) As BooleanOn Error GoTo errDim mXmlNode As System.Xml.XmlNode = mXmlDoc.SelectSingleNode("//" + node)Dim xmlNodeNew As System.Xml.XmlNodexmlNodeNew = mXmlNode.SelectSingleNode(element)xmlNodeNew.InnerText = valmXmlDoc.Save(MyClass.XmlFile)Return Trueerr:Return FalseEnd FunctionEnd Class例如:XML:192.168.0.6程序调用:Public Class Form1Dim xml As New CSysXML("IP.xml")Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim str As String = xml.GetElement("IP", "num")TextBox1.Text = strEnd SubEnd Class。
与XML的实例操作再建⽴项⽬的⽂件夹的bin⽂件夹下 '创建两个⽂件 '⼀个是"myxml.xml" '⼀个是"myxml.mdb" '这⾥⾯有⼀个表"users"三个字段名"nameid","age","faverity" '再转到图形界⾯ '单击"⼯具箱"的"数据"把"OleDbConnection"," OleDbComman","DataSet","OleDbDataAdapter" '拉⼊窗体界⾯ '依次对这⼏个控件进⾏操作 '我的⽂件夹是D:\vbproject\WindowsApplication1 'D:\vbproject\WindowsApplication1/bin/myxml.xml 'D:\vbproject\WindowsApplication1/bin/myxml.mdb //======================准备结束============== (1)⾸先在机⼦上要有.Net FrameWork 打开依次展开:⽂件-新建-项⽬; 再选择VISUAL-BASIC-项⽬-Windows应⽤程序 这就是所需要⼀个⼩界⾯ 现在⼀步步的来写代码,完成它的功能 ⾸先来完成添加功能: 我们⽬标是:通过这三个⽂本框(姓名,年龄,爱好)来添加到数据库中。
然后再把这个数据库的表保存成XML格式 双击"添加"按钮 在⾥⾯写下以下这些代:(VB写的语⾔,不是C#) If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" Then '在三个⽂本框都不为空时,执⾏以下操作, '否则出错 Dim strsel As String strsel = "select * from users where nameid='" & TextBox1.Text & "'" '建⽴⼀个查询字符串,看要要添加的姓名,是否已在数据中存在,如果不存在就可以添加 OleDbCommand1 = New OleDbCommand mandText = strsel Me.OleDbCommand1.Connection = OleDbConnection1 OleDbConnection1.Open() Try '进⾏异常处理 Dim reader As OleDbDataReader = OleDbCommand1.ExecuteReader() If reader.Read() Then '通过DataReader来读取,如果读得到,表明数据在有这个姓名存在,不添加; ListBox1.Items.Add("已经有该记录!") Else reader.Close() '要对数据库进⾏操作,⾸先把DataReader关掉; Dim insert As String insert = "insert into users(nameid,age,faverity) values('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "')" '建⽴⼀个插⼊字符串 OleDbCommand1 = New OleDbCommand mandText = insert Me.OleDbCommand1.Connection = Me.OleDbConnection1 Me.OleDbCommand1.ExecuteNonQuery() ListBox1.Items.Add("添加成功!!") '以下是把数据库的数据保存为XML格式 DataSet1 = New DataSet OleDbDataAdapter1 = New OleDbDataAdapter("select * from users", OleDbConnection1) OleDbDataAdapter1.Fill(DataSet1, "users") DataSet1.WriteXml("myxml.xml") End If Catch ex As Exception ListBox1.Items.Add("Errors!") End Try OleDbConnection1.Close() Else MessageBox.Show("请输⼊完整!!") End If //==================接下来是对数据库进⾏查询=================== '双击"查找"按钮 '写⼊以下代码 If TextBox4.Text <> "" Then '还是和上⾯⼀样如果⽂本框为空,就不执⾏,如果不为空,就执⾏下⾯的操作 ListBox1.Items.Clear() '⾸先把listBox清空 Dim searchtext As String searchtext = TextBox4.Text OleDbConnection1.Open() Dim selstring As String selstring = "select * from users where nameid like '%" & searchtext & "%'" ' 建⽴查询字符串,可以⽀持模糊查询 OleDbCommand1 = New OleDbCommand mandText = selstring Me.OleDbCommand1.Connection = OleDbConnection1 '以下⼏句是显⽰匹配的条数 DataSet1 = New DataSet OleDbDataAdapter1 = New OleDbDataAdapter(selstring, OleDbConnection1) OleDbDataAdapter1.Fill(DataSet1, "users") ListBox1.Items.Add("共有" & DataSet1.Tables("users").Rows.Count & "条匹配的记录") ListBox1.Items.Add("-------------------------------------------------------------") Try '进⾏异常处理 Dim cmdreader As OleDbDataReader = OleDbCommand1.ExecuteReader() While cmdreader.Read '注意这⾥要⽤while '不然就⽆法进⾏循环,就只能进⾏⼀次查询 ListBox1.Items.Add(cmdreader("nameid").ToString()) ListBox1.Items.Add(cmdreader("age").ToString()) ListBox1.Items.Add(cmdreader("faverity").ToString()) ListBox1.Items.Add("----------------------------------") End While cmdreader.Close() OleDbConnection1.Close() Catch ex As Exception ListBox1.Items.Add("Errors") End Try Else End If //================再把来XML⽂档,以XML形式显⽰在ListBox⾥⾯ 双击"XML⽂档" 写进下⾯这些代码: ListBox1.Items.Clear() ' 清空listBox Dim xtr As XmlTextReader = New XmlTextReader("myxml.xml") '创建成⼀个XmlTextReader读取"myxml.xml"⽂档 While xtr.Read Select Case (xtr.NodeType) ' 咱们⽤select case 形式来选择xml节点类型 Case XmlNodeType.XmlDeclaration '先从ListBox⾥写进xml声明=====xmldeclaration ListBox1.Items.Add("<?xml version='1.0' encoding='gb2312'?>") '再依次显⽰节点的名称,值 '包括根节点 Case XmlNodeType.Element ListBox1.Items.Add("<" & & ">") Case XmlNodeType.Text ListBox1.Items.Add(xtr.Value) Case XmlNodeType.EndElement ListBox1.Items.Add("</" & & ">") End Select End While xtr.Close() '关闭xmlTextReader //========再把数据库中所有数据显⽰在ListBox中======== '双击"查看全部"按钮 '写⼊下⾯的⼀些代码: ListBox1.Items.Clear() '这些代码⼤家应该可以看得懂了 OleDbConnection1.Open() Dim selall As String selall = "select * from users" OleDbCommand1 = New OleDbCommand mandText = selall Me.OleDbCommand1.Connection = OleDbConnection1 Try Dim creader As OleDbDataReader = OleDbCommand1.ExecuteReader() While creader.Read ListBox1.Items.Add("name: " & creader("nameid").ToString() & "; age :" & creader("age").ToString() & "; faverity :" & creader("faverity").ToString()) End While creader.Close() Catch ex As Exception ListBox1.Items.Add("Errors") End Try OleDbConnection1.Close() //==========================再来进完成删除按钮================= '双击"删除"按钮 '写⼊以下的代码 If TextBox4.Text <> "" Then '如果不为空,进⾏以下操作 ListBox1.Items.Clear() '先清空ListBox OleDbConnection1.Open() ' 建⽴连接 Dim delstring As String delstring = TextBox4.Text Dim delsel As String delsel = "select * from users where nameid='" & delstring & "'" '创建查询字符串 OleDbCommand1 = New OleDbCommand mandText = delsel Me.OleDbCommand1.Connection = OleDbConnection1 Try Dim selreader As OleDbDataReader = OleDbCommand1.ExecuteReader() If Not selreader.Read Then '假如读不到,就表明数据库⽆此数据,⽆法进⾏删除操作 MessageBox.Show("数据库中⽆该记录!") Else selreader.Close() '要对数据进⾏操作,必须⾸把DataReader关掉 Dim delrecord As String delrecord = "delete * from users where nameid='" & delstring & "'" '建⽴删除字符串sql语句,以上都是 OleDbCommand1 = New OleDbCommand mandText = delrecord Me.OleDbCommand1.Connection = OleDbConnection1 Me.OleDbCommand1.ExecuteNonQuery() MessageBox.Show("删除成功!!") '再把进⾏删除操作的数据库,再次把数据库中数据保存成XML⽂档 DataSet1 = New DataSet OleDbDataAdapter1 = New OleDbDataAdapter("select * from users", OleDbConnection1) OleDbDataAdapter1.Fill(DataSet1, "users") DataSet1.WriteXml("myxml.xml") End If Catch ex As Exception MessageBox.Show(ex.Message) Finally OleDbConnection1.Close() End Try Else MessageBox.Show("请输⼊你想删除的记录!") End If //======================= 重设按钮===== TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" ListBox1.Items.Clear() //============================关闭=============== me.Close() '好了这个⼩软件完成了,有问题的话留⾔ '本程序在.net framework 2003创建 '已经进⾏过测试,完全可以运⾏。
vb读取xml文件方法标题:VB 读取 XML 文件方法嘿,朋友!今天我要跟你唠唠怎么用 VB 读取 XML 文件,这可是个超有用的技能,学会了你就牛啦!首先呢,你得准备好 VB 这个工具,就像战士上战场得有把好枪一样。
第一步,打开你的 VB 编辑器,这就好比打开了一扇通往神奇世界的大门。
然后新建一个项目,给它起个响亮的名字,比如“XML 读取大冒险”。
接下来,在代码窗口中,你得引用一些必要的库。
这就好像给你的程序穿上一套超级装备,让它能在读取 XML 文件的战场上勇往直前。
引用的代码就像这样:```vbImports System.Xml```这一步可别忘了,不然你的程序可能会像没头的苍蝇一样乱撞。
然后呢,咱们得找到要读取的 XML 文件。
就好比你要去一个宝藏之地,得先知道它在哪儿。
假设你的 XML 文件叫“data.xml”,放在了“D:\myfiles”这个文件夹里。
再然后,就是真正读取文件的时刻啦!这一步就像是打开宝箱的关键钥匙。
代码大概像下面这样:```vbDim xmlDoc As New XmlDocumentxmlDoc.Load("D:\myfiles\data.xml")```这时候,VB 就把 XML 文件的内容都装进了“xmlDoc”这个大口袋里。
读取完了文件,接下来就得从这个大口袋里掏出咱们想要的宝贝啦!比如说,你想要获取 XML 文件中的某个节点的值。
这就好比在一个装满各种东西的大箱子里找你心心念念的那个小玩具。
假设你要找的节点叫“<user>”,那获取节点值的代码可以是这样:```vbDim node As XmlNode = xmlDoc.SelectSingleNode("//user")Dim value As String = node.InnerText```看,是不是像变魔术一样,就把节点的值给弄到手啦!我跟你说,我刚开始学这的时候,可闹了不少笑话。
学习笔记(二十一)XML流的读写System.Xml名称空间支持XML的处理,为了生成和浏览XML文档,使用两种访问方式:一、读写方式(一)基于流的方式特点:速度快,可连续读写,缺点不能作为节点、元素等进行操作,常用于套接字或文件中获取XML文档。
(二)基于文档对象模型(DOM)的方式特点:使用实体(节点、元素和特性)访问,定位灵活,但速度慢,是存储、读取程序设置首选。
(速度慢是因为XML需加载到DOM,故先要将整个文件加载到内存中)二、基于流的XML读写以仅前向的(forward-only)方式读取一块XML,且仅在内存中保存当前节。
流方式时,程序总是指向文档中的当前节点。
(一)XML基本认知XML以元素(结点)来传输和存储数据,各标签成对出现,大小写敏感,严格对齐。
例:XML文档如下:[vb] view plain copyprint?1.<?xml version="1. 0" encoding="utf-8"?>2.<FilmOrder filmId="101”>3.<Name>Grease</Name>4.<Quantity>10</Quantity>5.</FilmOrder>上面XML对应的元素及节点如下:【元素】【节点】XmlDeclaration <?xml version="1.0" encoding="utf-8"?> XmlAttribute Version XML 数据中的元素属性XmlAttribute EncodingXmlElement FilmOrder DOM结构中的元素(节点)XmlAttribute FilmIdXmlElement NameXmlText Grease 文本内容XmlElement NameXmlElement QuantityXmlText 10 文本内容XmlEndElement QuantityXmlWhitespace NothingXmlEndElement FilmOrder(二)XML流的读写访问XML流(读取XML)和生成XML流(写入XML)都包含在System.Xml中。
创建XML文件的方法下面所写方法是在网络资料的基础上,经过自己的实验而得出的。
使用创建XML文件有两种方法,下面逐一介绍:假设要创建如下的XML文件:1.<?xml version="1.0" encoding="UTF-8"?>2.<root>3.<Header>4.<row>5.<CRRNum/>6.<RequestedBy/>7.<CustomerNum/>8.</row>9.</Header>10.<Details>11.<row>12.<ItemCode />13.<ItemName />14.<SerialNum />15.<Warehouse />16.</row>17.</Details>18.</root>方法1:首先声明一个XmlDocument对象:1.Dim xmlReport As XmlDocument2.xmlReport = New XmlDocument其次通过XmlDocument.LoadXML来获得这个XML的初始结构,包括:Version,Encoding和根节点:1.xmlReport.LoadXML("<?xml version=""1.0"" encoding="" UTF-8""?><root/>")这样xmlReport就获得了初始结构了。
剩下的工作就是要声明XmlNode对象,逐级的使用XmlNode.AppendChild方法将各个节点串接起来,具体的程序如下:1.Dim xmlNode As XmlNode2.Dim xmlHeader As XmlNode3.Dim xmlDetail As XmlNode4.Dim xmlRow As XmlNode5.xmlHeader = xmlReport.CreateNode(XmlNodeType.Elem ent, "Header", "")6.xmlRow = xmlReport.CreateNode(XmlNodeType.Element, "row", "")7.xmlNode = xmlReport.createElement_x("CRRNum")8.xmlRow.AppendChild(xmlNode)9.xmlNode = xmlReport.createElement_x("RequestedBy")10.xmlRow.AppendChild(xmlNode)11.xmlNode = xmlReport.createElement_x("CustomerNu m")12.xmlRow.AppendChild(xmlNode)13.xmlHeader.AppendChild(xmlRow)14.xmlRoot.AppendChild(xmlHeader)15.xmlDetail = xmlReport.CreateNode(XmlNodeType.Ele ment, "Details", "")16.xmlRow = xmlReport.CreateNode(XmlNodeType.Elem ent, "row", "")17.xmlNode = xmlReport.createElement_x("ItemCode")18.xmlRow.AppendChild(xmlNode)19.xmlNode = xmlReport.createElement_x("ItemName")20.xmlRow.AppendChild(xmlNode)21.xmlNode = xmlReport.createElement_x("SerialNum")22.xmlRow.AppendChild(xmlNode)23.xmlDetail.AppendChild(xmlRow)24.xmlRoot.AppendChild(xmlDetail)25.xmlReport.AppendChild(xmlRoot)方法2:与方法一的主要区别就是,完全使用XML命名空间中的对象来创建,我本人更倾向于这种方法。
Imports System.Xml'声明XMLPublic Class Form1Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.ClickDim dataset As New DataSet'声明一个datasetdataset.ReadXml("f:¥aaa.xml")'读xml文件,并把xml文件放入到datset的第一个表中Dim table As DataTable=dataset.Tables(0)'读出该表Dim view As DataView=New DataView(table)'自定义视图DataGridView1.DataSource=view'绑定数据源End SubPublic Sub appear()'同上Dim dataset As New DataSetdataset.ReadXml("f:¥aaa.xml")Dim table As DataTable=dataset.Tables(0)Dim view As DataView=New DataView(table)DataGridView2.DataSource=viewEnd SubPrivate Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button2.ClickDim xmlDou As XmlDocument=New XmlDocument()'声明一个xml文档对象xmlDou.Load("f:¥aaa.xml")'将特定的xml文档写入xmldoucumentDim xmlnode As XmlNode=xmlDou.SelectSingleNode("bookstore")'声明一个根标记,bookstore为根标记Dim xml1As XmlElement=xmlDou.CreateElement("book")'声明一个xml 的节点xml1.SetAttribute("genre","李簪红")'节点的属性xml1.SetAttribute("ISBN","2-3621-4")'同上Dim xml1_title As XmlElement=xmlDou.CreateElement("title")'声明一个xml的节点xml1_title.InnerText="C#程序设计入门与技巧"'定义节点的文档xml1.AppendChild(xml1_title)'向总节点尾部添加节点Dim xml1_author As XmlElement=xmlDou.CreateElement("author")'同上xml1_author.InnerText="张永斌"xml1.AppendChild(xml1_author)Dim xml1_price As XmlElement=xmlDou.CreateElement("price")xml1_price.InnerText="56.7"xml1.AppendChild(xml1_price)xmlnode.AppendChild(xml1)Dim xml2As XmlElement=xmlDou.CreateElement("book")xml2.SetAttribute("genre","乐于")xml2.SetAttribute("ISBN","3-3423-5")Dim xml2_title As XmlElement=xmlDou.CreateElement("title")xml2_title.InnerText="JAVA"xml2.AppendChild(xml2_title)Dim xml2_author As XmlElement=xmlDou.CreateElement("author")xml2_author.InnerText="防御忧郁"xml2.AppendChild(xml2_author)Dim xml2_price As XmlElement=xmlDou.CreateElement("price")xml2_price.InnerText="44.4"xml2.AppendChild(xml2_price)xmlnode.AppendChild(xml2)xmlDou.Save("f:¥aaa.xml")appear()End SubPrivate Sub Button3_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button3.ClickDim xmlDoc As XmlDocument=New XmlDocument'同上xmlDoc.Load("f:¥aaa.xml")'同上Dim nodelist As XmlNodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes()'定义了一个xmlnodelist用于放根节点为bookstore的所有字标记For Each node As XmlNode In nodelist'遍历整个xmlnodelistDim elem As XmlElement=node'将节点转换为element元素Dim elem_children As XmlNodeList=elem.ChildNodes()'定义了一个elem_children用于放根节点为bookstore的所有字标记If elem.GetAttribute("genre")="李簪红"Then'获得第一子节点的属性elem.SetAttribute("genre","updata李簪红")'更新第一节点的属性End IfFor Each elem_node As XmlNode In elem_children'遍历第二子节点Dim elem_node_toelem As XmlElement=elem_node'将节点转换为element元素If elem_node_="author"Then'如果第二子节点的名称为authorIf elem_node_toelem.InnerText="防御忧郁"Then'如果这个节点的值为防御忧郁则elem_node_toelem.InnerText="O(∩_∩)O哈哈~"'更改他的值End IfEnd IfNextNextxmlDoc.Save("f:¥aaa.xml")'保存xml文件appear()End SubPrivate Sub Button4_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button4.ClickDim xmlDuc As XmlDocument=New XmlDocument()xmlDuc.Load("f:¥aaa.xml")Dim xml_geng As XmlElement=xmlDuc.SelectSingleNode("bookstore") Dim xmlnodelist As XmlNodeList=xml_geng.ChildNodes()For Each xmlnode As XmlNode In xmlnodelistDim xmlnodetoelem As XmlElement=xmlnodeIf xmlnodetoelem.GetAttribute("genre")="乐于"Thenxmlnodetoelem.RemoveAttribute("genre")End IfNextFor Each xmlnode As XmlNode In xmlnodelistDim xmlnodetoelem As XmlElement=xmlnodeIf xmlnodetoelem.GetAttribute("genre")="fantasy"Thenxmlnodetoelem.RemoveAll()End IfNextxmlDuc.Save("f:¥aaa.xml")'保存xml文件appear()End SubEnd Class。