.net读写 更新 删除(操作)xml文件
xml文档数据更新的几种方法

xml文档数据更新的几种方法
XML文档数据更新的几种方法:
1. 手动编辑XML文件,即直接打开XML文件,在文本编辑器或XML编辑器中增删改查数据。
这种方法适用于不需要大量更新数据的情况。
2. 使用XML DOM API操作XML数据,即通过编程语言,如Java、Python等,调用XML DOM API库函数进行增删改查操作。
这种方法适用于需要对大量XML数据进行更新的情况,且具备一定的编程能力。
3. 使用XSLT技术更新XML数据,即通过定义样式表,将不同格式的XML数据转换成需要的格式,并进行增删改查操作。
这种方法适用于需要对XML数据进行复杂的转换和更新的情况,但需要具备一定的XSLT技术和XML数据结构设计能力。
4. 使用XML数据库管理系统,如eXist、MarkLogic等,通过SQL语句或API调用进行XML数据的增删改查操作,可实现多用户、高性能的XML数据管理。
但是这种方法需要使用专门的XML数据库管理系统,并具备相应的数据库管理知识。
VB.NET读写XML配置文件

读写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。
NET读取XML的四种方法

% @ P age Language="C#"%><html><body><h3><font face="Verdana">读取XML方法一</font></h3><from runat=server><asp:Xml id="xml1" DocumentSource="grade.xml" runat="server" /></from></body></html>方法二:使用DOM技术<% @ Page Language="C#"%><% @ Import Namespace="System.Xml"%><% @ Import Namespace="System.Xml.Xsl"%><html><script language="C#" runat="server">void Page_Load(Object sender,EventArgs e){XmlDocument doc=new XmlDocument();doc.Load(Server.MapPath("grade.xml"));xml1.Document=doc;}</script><body><h3><font face="V erdana">读取XML方法二</font></h3><from runat=server><asp:Xml id="xml1" runat="server" /></from></body></html>方法三:使用DataSet对象<% @ Page Language="C#"%><% @ Import Namespace="System.Data"%><% @ Import Namespace="System.Data.OleDb"%><script language="C#" runat="server">void Page_Load(Object sender,EventArgs e){DataSet objDataSet=new DataSet();objDataSet.ReadXml(Server.MapPath("grade.xml")); dgEmployees.DataSource=objDataSet.Tables["student"].DefaultView; dgEmployees.DataBind();}</script><body><h3><font face="V erdana">读取XML方法三</font></h3><asp:DataGrid id="dgEmployees" runat="server" /></body></html>方法四:按文本方式读取<% @ Page Language="C#"%><% @ Import Namespace="System.Xml"%><html><script language="C#" runat="server">private void Page_Load(Object sender,EventArgs e){XmlTextReader objXMLReader=new XmlTextReader(Server.MapPath("grade.xml"));string strNodeResult="";XmlNodeType objNodeType;while(objXMLReader.Read()){objNodeType =objXMLReader.NodeType;swith(objNodeType){case XmlNodeType.XmlDeclaration://读取XML文件头strNodeResult+="XMLDeclaration:<b>"++""+objXMLReader.V alue+"</b><br/>";break;case XmlNodeType.Element://读取标签strNodeResult+="Element:<b>"++"</b><br/>";break;case XmlNodeType.Text://读取值strNodeResult+=" -V alue:<b>"+objXMLReader.V alue+"</b><br/>";break;}//判断该节点是否有属性if(objXMLReader.AttributeCount>0){ //用循环判断完所有节点while(objXMLReader.MoveToNextAttibute){ //取标签和值strNodeResult+=" -Attribute:<b>"++"</b> value:<b>"+objXM LReader.V alue+"</b><br/>";}}LblFile.Text=strNodeResult;}}</script><body><h3><font face="V erdana">读取XML方法四</font></h3> <from runat=server><asp:label id="LblFile" runat="server" /></from></body></html>。
VB.NET读取写入XML文件

读取写入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。
在NETFramework中轻松处理XML数据

在.NET Framework中轻松处理XML数据(一> /school · 2005-01-17 12:40:21 · 来源: 0在.NET Framework中,XmlTextReader和XmlTextWriter类提供了对xml数据的读和写操作。
在本文中,作者讲述了XML阅读器(Reader>的体系结构及它们怎样与XMLDOM 和SAX 解释器结合。
作者也演示了怎么样运用阅读器分析和验证XML文档,怎么样创建格式良好的XML文档,以及怎么样用函数读/写基于Base64和BinHex编码的大型的XML文档。
最后,作者讲了怎么样实现一个基于流的读/写分析器,它把读写器都封装在一个单独的类里。
大概三年前,我参加了一个软件研讨会,主题是“没有XML,就没有编程的未来”。
XML确实也在一步一步的发展,它已经嵌入到. NET Framework中了。
在本文中,我将讲解. NET Framework中用于处理XML文档的API的角色和它的内部特性,然后我将演示一些常用的功能。
从MSXML到.net的XML在. NET Framework出现之前,你习惯使用MSXML服务----一个基于COM的类库---写windows的XML的驱动程序。
不像. NET Framework中的类,MSXML类库的部分代码比API更深,它完全的嵌在操作系统的底层。
MSXML的确能够与你的应用程序通信,但是它不能真正的与外部环境结合。
MSXML类库能在win32中被导入,也能在CLR中运用,但它只能作为一个外部服务器组件使用。
但是基于.NET Framework的应用程序能直接的用XML类与.NET Framework 的其它命名空间整合使用,并且写出来的代码易于阅读。
作为一个独立的组件,MSXML分析器提供了一些高级的特性如异步分析。
这个特性在.NET Framework中的XML类及.NET Framework的其它类都没有提供,但是,NET Framework中的XML类与其它的类整合可以很轻易的获得相同的功能,在这个基础上你可以增加更多的功能。
使用ADO.NET读取和写入XML

—
趔
—
使 用
A Do . E " N l -读 取 和 写 入
口 罗 芳 江 西 工 业 贸 易 职 业 技 术 学 院 信 息科 学 系
X M L
摘 要 : 软 公 司. 微 NET 平 台 的使 用越 来越 广 泛 了, 其 是 它 的数 据 库 访 问技 术 的使 用 。使 用 ADO. 尤 NET 读 取 和 写入 XML文 件
载 X D架 构 后 ,可 以 使 用 文 件 名 、 流 、eted r 类 对 象 或 S T xR a e 子
X l e d r 类 对 象 提 供 X D信 息 。 mRae子 S
技 术 ( D 中 的一 种 , 为 这 两 种 技 术 不 能 真 正 一 起 工 作 , 法 A O) 因 无 让程 序员 轻 松 的在 X ML文 档 和 A O R crst 间 移 动 数 D eode 之
了X ML和数 据 访 问技 术 之 间 的桥 梁 , 很 容 易 将 这 两 种 技 术 集 它
成 在 一 起 。使 得 操 作 者 可 以 容 易 的将 XM L文 档 的 数 据 加 载 到 A ON T D t e 中 . 之 使 用 某 种 数 据 库 也 可 以 从 数 据 库 中 D .E a S t 反 a
是 _e 技 术 中 的 一 个 新 亮 点 。 该 文 将 使 用 ADO . nt NET 读 取 和 写 入 XM L 的 方 法 进 行 一 些 探 讨 , 迎 大 家 一 起 交 流 。 欢
关键 字 : ADO. NET; L; D 架 构 ; tS t XM XS Daa e
微 软 A O.E 使 用 X D NT ML作 为 管 理 数 据 与 在 数 据 源 和
.Net读取配置文件xml

.Net读取配置⽂件xml直接解析XML⽂件在直接读取⽂件的时候由于⼿动getAttribute很⿇烦,⽽且容易出错,attribute可以参考log4net的⽅式,全部做成宏定义:使⽤.Net提供的的⽅式(ConfigurationManager类,⽀持.Net Core 2)特别说明:using System.Configuration 之后可能还要⼿动勾选,如下图:使⽤.Net 提供的⽅法读取有时候会很⽅便,可以直接将配置信息填写在app.config ⽂件中例如下⾯的配置⽂件读取的时候:<?xml version="1.0" encoding="utf-8" ?><configuration><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup><appSettings><add key="name" value="kun"/><add key="name2" value="kun"/></appSettings><connectionStrings><add name="WingtipToys" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=WingtipToys;Integrated Security=True;Pooling=False" /> </connectionStrings></configuration>static void ReadAllSettings(){try{var appSettings = ConfigurationManager.AppSettings;if (appSettings.Count == 0){Console.WriteLine("AppSettings is empty.");}else{foreach (var key in appSettings.AllKeys.Where((key) => key == "name")){Console.WriteLine("Key: {0} Value: {1}", key, appSettings[key]);}}}catch (ConfigurationErrorsException){Console.WriteLine("Error reading app settings");}}static void ReadSetting(string key){try{var appSettings = ConfigurationManager.AppSettings;string result = appSettings[key] ?? "Not Found";Console.WriteLine(result);}catch (ConfigurationErrorsException){Console.WriteLine("Error reading app settings");}}读取数据库连接信息也可以只⽤⼀句代码:var connectionString = ConfigurationManager.ConnectionStrings["WingtipToys"].ConnectionString;对于这种简单key/Value⽅式的配置,使⽤ConfigurationManager类还是很⽅便的。
简单的XML文件操作(xml文件生成,节点追加、遍历、修改、删除)

<KeywordType>Variable</KeywordType>
<Describe>ushort 型变量的缩写定义。如:ushort us_personal = 8;</Describe>
<Describe>boolean 型变量的缩写定义。如:boolean bl_flag = true;</Describe>
<InputTime>2007-08-01 15:14:55</InputTime>
</Keyword>
<Keyword>
<No.>6</No.>
protected void Button2_Click(object sender, EventArgs e)
{
//向xml文档中插入节点;
if (this.TextBox5.Text.Trim() == "" || this.TextBox6.Text.Trim() == "")
_xmlWriter.WriteComment("编制人:DOCFlying");
_xmlWriter.WriteComment("编制时间:" + datime.Date.ToString("yyyy-MM-dd"));
_xmlWriter.WriteStartElement(TextBox3.Text.Trim());
使用.NET读取XML文件

使⽤.NET读取XML⽂件1. 介绍本⽂中我将介绍在应⽤程序中如何读取XML⽂件,这是⼀个⼗分有⽤的技巧。
使⽤这个技巧,我们能够定制我们的应⽤程序的配置⽂件,也可以读取那些保存在XML⽂件中的数据。
概论下⾯的代码将使⽤XmlTextReader对象将磁盘⽂件中的数据读取到XmlDocument对象中。
XmlTextReader对象在功能上和StreamReader及BinaryReader对象⼗分相似,只不过它是专为读取XML⽂件⽽特别设计的。
除此以外,XmlTextReader对象还有其他⼀些与XMl相关的特性。
例如,代码中使⽤到的WhitespaceHandling属性告诉应⽤程序不要为XML⽂件中多余的空格建⽴节点。
下⾯的代码使⽤XmlTextReader对象的DocumentElement属性来查找XML⽂档的树状表达形式的根节点。
之后,递归地调⽤AddWithChildren⽅法将将节点及它的⼦节点⼀同添加到listbox中。
下⾯的代码还包含了属性的处理。
属性节点并不包含在⼀个XmlDocument对象的节点的⼦节点集合中。
因⽽,你只能使⽤XmlNode对象的Attributes属性获得属性节点集合。
获取了属性节点集合后,代码使⽤XmlNamedNodeMap对象来保存这个集合。
这个对象能够保存任何类型的XmlNode对象的任何集合。
代码列表private void btnLoad_Click(object sender, System.EventArgs e){XmlTextReader reader = new XmlTextReader(Server.MapPath("mycompany.xml"));reader.WhitespaceHandling = WhitespaceHandling.None;XmlDocument xmlDoc = new XmlDocument();//将⽂件加载到XmlDocument对象中xmlDoc.Load(reader);//关闭连接reader.Close();//向listbox中添加代表⽂档的元素lbNodes.Items.Add("XML Document");//查找根节点,并将它及它的⼦节点⼀同添加到listbox中XmlNode xnod = xmlDoc.DocumentElement;AddWithChildren(xnod,1);}private void AddWithChildren(XmlNode xnod, Int32 intLevel){//将节点及它的⼦节点⼀同添加到listbox中//intLevel 控制缩进的深度XmlNode xnodWorking;String strIndent = new string('' '',2 * intLevel);//如果节点有值,读取它的值string strValue = (string) xnod.Value;if(strValue != null){strValue = " : " + strValue;}//将节点的详细信息添加到ListBox中lbNodes.Items.Add(strIndent + + strValue); //如果是元素节点,获取它的属性if (xnod.NodeType == XmlNodeType.Element){XmlNamedNodeMap mapAttributes = xnod.Attributes;//将节点属性添加到ListBox中foreach(XmlNode xnodAttribute in mapAttributes){lbNodes.Items.Add(strIndent + " " + + " : " + xnodAttribute.Value);}//如果还有⼦节点,就递归地调⽤这个程序if(xnod.HasChildNodes){xnodWorking = xnod.FirstChild;while (xnodWorking != null){AddWithChildren(xnodWorking, intLevel +1); xnodWorking = xnodWorking.NextSibling;}}}}}。
vbnet读取xml的方法

vbnet读取xml的方法【最新版3篇】目录(篇1)I.vbnet读取xml的方法概述1.vbnet是一种面向对象的编程语言,可用于开发Windows平台下的应用程序。
2.xml是一种标记语言,用于描述数据结构和内容。
3.vbnet读取xml的方法可以用于从xml文件中获取数据,并将其转换为可读的数据结构。
II.vbnet读取xml的方法详细说明1.使用vbnet的XmlDocument类读取xml文件。
2.XmlDocument类提供了许多方法,可用于解析和操作xml文件。
3.使用XmlDocument类的Load方法加载xml文件,并将其解析为一个XmlDocument对象。
4.使用XmlDocument对象的SelectNodes方法,可以获取xml文件中指定标签下的所有节点。
5.使用XmlDocument对象的SelectSingleNode方法,可以获取xml 文件中指定标签下的第一个节点。
6.使用XmlDocument对象的ReadXml方法,可以将xml文件中的数据读取为一个字符串。
7.使用XmlDocument对象的WriteXml方法,可以将数据写入到xml 文件中。
正文(篇1)vbnet是一种面向对象的编程语言,可用于开发Windows平台下的应用程序。
xml是一种标记语言,用于描述数据结构和内容。
vbnet读取xml 的方法可以用于从xml文件中获取数据,并将其转换为可读的数据结构。
以下是vbnet读取xml的方法的详细说明。
使用vbnet的XmlDocument类读取xml文件。
XmlDocument类提供了许多方法,可用于解析和操作xml文件。
使用XmlDocument类的Load方法加载xml文件,并将其解析为一个XmlDocument对象。
使用XmlDocument 对象的SelectNodes方法,可以获取xml文件中指定标签下的所有节点。
使用XmlDocument对象的SelectSingleNode方法,可以获取xml文件中指定标签下的第一个节点。
ASP.NET下对XML文件内容的操作

列 ; 个 删 除列 。如 图 3所 示 。 一
; 0龋 04 1 i 26 与 0i .
,
一
,
维普资讯
r ur et n:
} i t x me T x f b Na . e t= =~ ) ( f
R s o s . re( < ci l g a e=a aci >lr e p n e W i s r t a u g j s r tae t p n v p t
第 2步: WeFr .sx 计窗体 中进行设 置。如 图 2 在 bo m1ap 设
所示 ,控 件 属 性见 下表 。
控
T nl t ni a T nl t ni a T n lt ni a
件
设置拄件的■性
I = lt l T = m D l Um Di  ̄ z I =山 d ∞ ; t m D 。 = I I =. 【 羽 ∞ ; t m D b^ 。 = I I =1 U  ̄f ; m =N l D ] s f T / ) u1
处理 。
E
墅 受
.. .
本 文 把 X 做 一 个 数 据 仓 库 ,讲 述 如何 对 X ML ML文 档 进 行 添 加 、插 入 、更新 、删 除 等 操 作 。
『———————一 .
二 、实 现
第 1 打开 V.E, [ 步: S N T 在 文件 】 [ 建】 [ 目】 一>新 一> 项 ,在
图 3
第 3步 :在 解 决 方 案 资 料 管 理 器 \prt X L项 目下建 立 oea r M o
一
个 X ML文 件 , 件 名 设 为 ue .m 。 文 sr x l s
第 4步: WeF r .sx c 在 bo m1 ap.s中添加如下代码 :
vb.net创建、修改、读取XML的方法

创建、修改、读取XML的方法''' <summary>''' 创建XML文件''' </summary>''' <param name="xmlFileName">要创建的XML文件名</param>''' <remarks></remarks>Private Sub createXML(ByVal xmlFileName As String)TryDim writer As New Xml.XmlTextWriter(Application.StartupPa th & "" & xmlFileName, System.Text.Encoding.GetEncoding("utf-8"))'使用自动缩进便于阅读writer.Formatting = Xml.Formatting.Indentedwriter.WriteRaw("<?xml version=""1.0"" encoding=""utf-8"" ?>")'书写根元素()writer.WriteStartElement("Config")'添加次级元素writer.WriteStartElement("DatabaseSetting")'添加子元素()writer.WriteElementString("DataSource", Me.cmbHostName. SelectedItem.ToString.Trim)'为Datasource添加一个属性为value,值为test 的属性'writer.WriteAttributeString("value","test")writer.WriteElementString("InitialCatalog", Me.cmbDatabase Name.SelectedItem.ToString.Trim)writer.WriteElementString("UserID", Me.txtUserName.T ext.Tri m)writer.WriteElementString("Password", Me.txtPassword.T ext. Trim)'关闭次级元素DatabaseSettingwriter.WriteEndElement()'添加次级元素StationSettingwriter.WriteStartElement("StationSetting")'添加子元素writer.WriteElementString("StoreID", Me.cmbStoreID.Selecte dItem.ToString.Trim)writer.WriteElementString("StationID", Me.cmbStationID.Sel ectedItem.ToString.Trim)'关闭次级元素StationSettingwriter.WriteEndElement()'关闭根元素writer.WriteFullEndElement()'将XML写入文件并关闭writerwriter.Close()Catch ex As ExceptionMsgBox(ex.Message & vbCrLf & ex.StackTrace)End TryEnd Sub''' <summary>''' 修改XML''' </summary>''' <param name="xmlFileName">要修改的XML文件名</param>''' <param name="rootName">XML文件中的根元素名称</param>''' <param name="elementNameArry">要修改的元素数组</param>''' <param name="innerTextArry">对应于要修改的元素数组的修改文本数组</param>''' <remarks></remarks>Public Sub modifXML(ByVal xmlFileName As String, ByVal ro otName As String, ByVal elementNameArry() As String, ByVal in nerTextArry() As String)If puter.FileSystem.FileExists(Application.StartupPat h.Trim & "" & xmlFileName) ThenDim doc As New Xml.XmlDocumentdoc.Load(Application.StartupPath.Trim & "" & xmlFileName) Dim list As Xml.XmlNodeList = doc.SelectSingleNode(rootN ame).ChildNodesFor Each xn As Xml.XmlNode In listDim xe As Xml.XmlElementxe = xnDim nls As Xml.XmlNodeList = xe.ChildNodesFor Each xn1 As Xml.XmlNode In nlsDim xe2 As Xml.XmlElementxe2 = xn1For i As Integer = 0 To elementNameArry.Length - 1If = elementNameArry(i) Thenxe2.InnerText = innerTextArry(i)End IfNextNextNextdoc.Save(Application.StartupPath.Trim & "" & xmlFileName) End IfEnd Sub''' <summary>''' 读取XML文件''' </summary>''' <param name="xmlFileName">要读取的XML文件名</param>''' <remarks></remarks>Private Sub readXMl(ByVal xmlFileName As String)TryIf puter.FileSystem.FileExists(Application.StartupPat h & "" & xmlFileName) ThenDim doc As New Xml.XmlDocumentdoc.Load(Application.StartupPath.Trim & "" & xmlFileName) Dim re As Xml.XmlNodeReader = New Xml.XmlNodeReader (doc)Dim tmpStr As String = ""Dim name As StringWhile re.ReadSelect Case re.NodeTypeCase Xml.XmlNodeType.Elementname = Case Xml.XmlNodeType.TextIf name.Equals("DataSource") ThentmpStr = tmpStr & "Data Source=" & re.ValueEnd IfIf name.Equals("InitialCatalog") ThentmpStr = tmpStr & ";Initial Catalog=" & re.ValueEnd IfIf name.Equals("UserID") ThentmpStr = tmpStr & ";User ID=" & re.ValueEnd IfIf name.Equals("Password") ThentmpStr = tmpStr & ";Password=" & re.Value End IfEnd SelectEnd WhileEnd IfCatch ex As ExceptionMsgBox(ex.Message & vbCrLf & ex.StackTrace) End TryEnd Sub。
C#.NET 使用XmlDocument操作XML

C#使用XmlDocument操作XML进行查询、增加、修改、删除、保存应用的实例(转载)在.NET中使用DataSet来获取XML数据与保存XML数据很简单,很好用,不过有一些复杂点的XML 结构,使用DataSet来操作就没有XmlDocument来操作这么好用了,所以本文在C#使用XmlDocument来操作XML的查询、增加、修改、删除、保存的基本操作。
下面看实例:XML文件:books.xml1<?xml version="1.0" encoding="UTF-8"?>2<books>3 <book> //这里没有id 下面代码会增加4 <name>哈里波特</name>5 <price>10</price>6 <memo>这是一本很好看的书。
</memo>7 </book>8 <book id="B02">9 <name>三国演义</name>10 <price>10</price>11 <memo>四大名著之一。
</memo>12 </book>13 <book id="B03">14 <name>水浒</name>15 <price>6</price>16 <memo>四大名著之一。
</memo>17 </book>18 <book id="B04">19 <name>红楼</name>20 <price>5</price>21 <memo>四大名著之一。
.net对文件的操作之文件读写

给出一个C#支持的编码大全:(GetEncodings()遍历出来的)
IBM037 IBM437 IBM500 ASMO-708 DOS-720 ibm737 ibm775 ibm850 ibm852 IBM855 ibm857 IBM00858 IBM860 ibm861 DOS-862
StreamWriter构造时可以指定编码枚举类型Encoding
常用的Encoding的值有:
1. Default:操作系统的默认编码 2. ASCII:美国信息交换标准码,适用于纯英文环境 3. UTF8:UTF-8格式编码 4. Unicode:能够容纳世界上所有字符的编码方案,缺点是占用空间较大
IBM277 IBM278 IBM280 IBM284 IBM285 IBM290 IBM297 IBM420 IBM423 IBM424 x-EBCDIC-KoreanExtended IBM-Thai koi8-r IBM871 IBM880 IBM905 IBM00924 EUC-JP x-cp20936 x-cp20949 cp1025 koi8-u iso-8859-1 iso-8859-2 iso-8859-3 iso-8859-4 iso-8859-5 iso-8859-6 iso-8859-7 iso-8859-8 iso-8859-9 iso-8859-13 iso-8859-15 x-Europa iso-8859-8-i iso-2022-jp csISO2022JP iso-2022-jp iso-2022-kr x-cp50227 euc-jp EUC-CN euc-kr hz-gb-2312 GB18030 x-iscii-de x-iscii-be x-iscii-ta x-iscii-te x-iscii-as x-iscii-or x-iscii-ka x-iscii-ma x-iscii-gu x-iscii-pa utf-7 utf-8
VB.NET简单读写XML配置文件

Public Class Form1Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button2.ClickDim path As String = "d:\cong.XML"'写入XML失败,则先初始化,后写入If WriteXML(TextBox1.Text, TextBox2.Text, path) = False ThenResetXML(path)WriteXML(TextBox1.Text, TextBox2.Text, path)End IfEnd SubEnd ClassImports System.XmlModule Module1Public Function WriteXML(ByVal nameStr As String, ByVal valueStr As String, ByVal path As String) As BooleanTryDim doc As New XmlDocumentDim RootNode As XmlElementDim mBound, i As IntegerDim isExit As Boolean = Falsedoc.Load(path)'循环体遍历子节点RootNode = doc.DocumentElementmBound = RootNode.ChildNodes.Count - 1For i = 0 To mBoundIf RootNode.ChildNodes(i).Name = nameStr ThenRootNode.ChildNodes(i).InnerText = valueStrisExit = TrueExit ForEnd IfNext'如果修改失败,则创建节点If isExit = False ThenDim xn As XmlNode = doc.CreateNode(XmlNodeType.Ele ment, nameStr, "")RootNode.AppendChild(xn)xn.InnerText = valueStrEnd Ifdoc.Save(path)Return TrueCatch ex As ExceptionReturn False '如果XML文件遭到破坏,则返回False End TryEnd FunctionPublic Function GetXML(ByVal nameStr As String, ByVal faultStr As String, ByVal path As String) As String'节点或XML不存在都会返回faultStrTryDim valueStr As String = faultStrDim xtr As XmlTextReader = New XmlTextReader(path)While xtr.ReadIf = nameStr ThenvalueStr = xtr.ReadStringExit WhileEnd IfEnd Whilextr.Close()Return valueStrCatch ex As ExceptionReturn faultStrEnd TryEnd FunctionPublic Function ResetXML(ByVal path As String) As BooleanTryDim xmlInit As StringxmlInit = "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "gb2312" & Chr(34) & "?>" & vbCrLf _& "<config>" & vbCrLf _& "</config>"puter.FileSystem.WriteAllText(path, xmlInit, False, S ystem.Text.Encoding.Default)Return TrueCatch ex As ExceptionReturn FalseEnd TryEnd FunctionEnd Module<?xml version="1.0" encoding="gb2312"?><config><hostsq>698</hostsq><hosts>258</hosts><price>369</price></config>。
.net操作xml的简单方法及说明

.net操作xml的简单⽅法及说明复制代码代码如下:using System.Xml;//初始化⼀个xml实例XmlDocument xml=new XmlDocument();//导⼊指定xml⽂件xml.Load(path);xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));//指定⼀个节点XmlNode root=xml.SelectSingleNode("/root");//获取节点下所有直接⼦节点XmlNodeList childlist=root.ChildNodes;//判断该节点下是否有⼦节点root.HasChildNodes;//获取同名同级节点集合XmlNodeList nodelist=xml.SelectNodes("/Root/News");//⽣成⼀个新节点XmlElement node=xml.CreateElement("News");//将节点加到指定节点下,作为其⼦节点root.AppendChild(node);//将节点加到指定节点下某个⼦节点前root.InsertBefore(node,root.ChildeNodes[i]);//为指定节点的新建属性并赋值node.SetAttribute("id","11111");//为指定节点添加⼦节点root.AppendChild(node);//获取指定节点的指定属性值string id=node.Attributes["id"].Value;//获取指定节点中的⽂本string content=node.InnerText;//保存XML⽂件string path=Server.MapPath("~/file/bookstore.xml");xml.Save(path);//or use :xml.Save(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));。
C#.NET示例读写xml所有节点的代码实现方法和读取xml节点的数据总结

//打开某文件(假设web.config在根目录中)string filename=Server.MapPath("/") + @"WebApplication1\web.config";XmlDocument xmldoc= new XmlDocument();xmldoc.Load(filename);//得到顶层节点列表XmlNodeList topM=xmldoc.DocumentElement.ChildNodes;foreach(XmlElement element in topM){if(.ToLower()=="appsettings"){//得到该节点的子节点XmlNodeList nodelist=element.ChildNodes;if ( nodelist.Count >0 ){//DropDownList1.Items.Clear();foreach(XmlElement el in nodelist)//读元素值{//DropDownList1.Items.Add(el.Attributes["key"].InnerXml); //this.TextBox2.Text=el.Attributes["key"].InnerText;this.TextBox2.Text=el.Attributes["key"].Value;bel1.Text=el.Attributes["value"].Value;//同样在这里可以修改元素值,在后面save。
// el.Attributes["value"].Value=this.TextBox2.Text;}}}}xmldoc.Save(filename);}效果:<appSettings><add key="密码" value="admin" /><add key="ltp" value="first" /></appSettings>//添加空元素:XmlNode node=doc.CreateElement(groupname);node.InnerText="";stChild.AppendChild(node);doc.Save(xmlfile);删除一个节点元素string itemname=this.listBox1.SelectedItem.ToString(); this.listBox1.Items.Remove(this.listBox1.SelectedItem);//begin del xmlfileXmlDocument doc=new XmlDocument();doc.Load(xmlfile);XmlNodeList topM=doc.DocumentElement.ChildNodes;foreach(XmlElement element in topM){if(==boBox1.Text){//得到该节点的子节点XmlNodeList nodelist=element.ChildNodes;foreach(XmlElement el in nodelist)//读元素值{if(el.Attributes["key"].Value==itemname){element.RemoveChild(el);}}//循环元素}//得到组}//循环组doc.Save(xmlfile); //一定要保存一下,否则不起作用//筛选数据private void Reader_Xml(string pathFlie){XmlDocument Xmldoc=new XmlDocument();Xmldoc.Load(pathFlie);XmlNodeList Record1=Xmldoc.DocumentElement.SelectNodes(Code[@id='1'])int f=0;foreach(XmlNode xnode in Record1){}} /**//*读取xml数据两种xml方式*/<aaa><bb>something</bb><cc>something</cc></aaa><aaa><add key="123" value="321"/></aaa>/**//*第一种方法*/DS.ReadXml("your xmlfile name");Container.DataItem("bb");Container.DataItem("cc");DS.ReadXmlSchema("your xmlfile name");/**//*第二种方法*/<aaa><add key="123" value="321"/></aaa>如果我要找到123然后取到321应该怎么写呢?using System.XML;XmlDataDocument xmlDoc = new System.Xml.XmlDataDocument();xmlDoc.Load(@"c:\Config.xml");XmlElement elem = xmlDoc.GetElementById("add");string str = elem.Attributes["value"].Value/**//*第三种方法: SelectSingleNode 读取两种格式的xml *---/-------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?><configuration><appSettings><ConnectionString>Data Source=yf; user id=ctm_dbo;password=123</ConnectionString>在某节点下增加一个元素,并设置值:if(.ToLower()=="appsettings"){XmlElement elem =xmldoc.CreateElement("add");element.AppendChild(elem);elem.InnerText="ltp";xmldoc.Save(filename);}效果:<appSettings><add key="密码" value="admin" /><add>ltp</add></appSettings>在某节点下增加一个元素,并增加两个属性:if(.ToLower()=="appsettings"){XmlElement elem =xmldoc.CreateElement("add");element.AppendChild(elem);XmlAttribute xa=xmldoc.CreateAttribute("key");xa.Value="ltp";XmlAttribute xa2=xmldoc.CreateAttribute("value");xa2.Value="first";elem.SetAttributeNode(xa);elem.SetAttributeNode(xa2);xmldoc.Save(filename);</appSettings></configuration>--------------------------------------------------------------------------XmlDocument doc = new XmlDocument();doc.Load(strXmlName);XmlNode node=doc.SelectSingleNode("/configuration/appSettings/ConnectionStrin g");if(node!=null){string k1=node.Value; //nullstring k2=node.InnerText;//Data Source=yf; user id=ctm_dbo;password=123string k3=node.InnerXml;//Data Source=yf; user id=ctm_dbo;password=123node=null;}********************************************************************<?xml version="1.0" encoding="utf-8" ?><configuration><appSettings><add key="ConnectionString" value="Data Source=yf; user id=ctm_dbo;password=123" /></appSettings></configuration>**--------------------------------------------------------------------**XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add");if(node!=null){string k=node.Attributes["key"].Value;string v=node.Attributes["value"].Value;node=null;}*--------------------------------------------------------------------*XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add");if(node!=null){XmlNodeReader nr=new XmlNodeReader(node);nr.MoveToContent();//检查当前节点是否是内容节点。
Qtxml文件常用的操作(读写,增删改查)

Qtxml⽂件常⽤的操作(读写,增删改查)项⽬配置pro⽂件⾥⾯添加QT+=xmlinclude <QtXml>,也可以include <QDomDocument>项⽬⽂件:.pro ⽂件1 QT += core xml23 QT -= gui45 TARGET = xmltest6 CONFIG += console7 CONFIG -= app_bundle89 TEMPLATE = app101112 SOURCES += main.cpp主程序:main.cpp1 #include <QCoreApplication>2 #include <QtXml> //也可以include <QDomDocument>34//写xml5void WriteXml()6 {7//打开或创建⽂件8 QFile file("test.xml"); //相对路径、绝对路径、资源路径都可以9if(!file.open(QFile::WriteOnly|QFile::Truncate)) //可以⽤QIODevice,Truncate表⽰清空原来的内容10return;1112 QDomDocument doc;13//写⼊xml头部14 QDomProcessingInstruction instruction; //添加处理命令15 instruction=doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\"");16 doc.appendChild(instruction);17//添加根节点18 QDomElement root=doc.createElement("library");19 doc.appendChild(root);20//添加第⼀个⼦节点及其⼦元素21 QDomElement book=doc.createElement("book");22 book.setAttribute("id",1); //⽅式⼀:创建属性其中键值对的值可以是各种类型23 QDomAttr time=doc.createAttribute("time"); //⽅式⼆:创建属性值必须是字符串24 time.setValue("2013/6/13");25 book.setAttributeNode(time);26 QDomElement title=doc.createElement("title"); //创建⼦元素27 QDomText text; //设置括号标签中间的值28 text=doc.createTextNode("C++ primer");29 book.appendChild(title);30 title.appendChild(text);31 QDomElement author=doc.createElement("author"); //创建⼦元素32 text=doc.createTextNode("Stanley Lippman");33 author.appendChild(text);34 book.appendChild(author);35 root.appendChild(book);3637//添加第⼆个⼦节点及其⼦元素,部分变量只需重新赋值40 time=doc.createAttribute("time");41 time.setValue("2007/5/25");42 book.setAttributeNode(time);43 title=doc.createElement("title");44 text=doc.createTextNode("Thinking in Java");45 book.appendChild(title);46 title.appendChild(text);47 author=doc.createElement("author");48 text=doc.createTextNode("Bruce Eckel");49 author.appendChild(text);50 book.appendChild(author);51 root.appendChild(book);5253//输出到⽂件54 QTextStream out_stream(&file);55 doc.save(out_stream,4); //缩进4格56 file.close();5758 }5960//读xml61void ReadXml()62 {63//打开或创建⽂件64 QFile file("test.xml"); //相对路径、绝对路径、资源路径都⾏65if(!file.open(QFile::ReadOnly))66return;6768 QDomDocument doc;69if(!doc.setContent(&file))70 {71 file.close();72return;73 }74 file.close();7576 QDomElement root=doc.documentElement(); //返回根节点77 qDebug()<<root.nodeName();78 QDomNode node=root.firstChild(); //获得第⼀个⼦节点79while(!node.isNull()) //如果节点不空80 {81if(node.isElement()) //如果节点是元素82 {83 QDomElement e=node.toElement(); //转换为元素,注意元素和节点是两个数据结构,其实差不多84 qDebug()<<e.tagName()<<""<<e.attribute("id")<<""<<e.attribute("time"); //打印键值对,tagName和nodeName是⼀个东西85 QDomNodeList list=e.childNodes();86for(int i=0;i<list.count();i++) //遍历⼦元素,count和size都可以⽤,可⽤于标签数计数87 {88 QDomNode n=list.at(i);89if(node.isElement())90 qDebug()<<n.nodeName()<<":"<<n.toElement().text();91 }92 }93 node=node.nextSibling(); //下⼀个兄弟节点,nextSiblingElement()是下⼀个兄弟元素,都差不多94 }9596 }9798//增加xml内容99void AddXml()100 {101//打开⽂件102 QFile file("test.xml"); //相对路径、绝对路径、资源路径都可以103if(!file.open(QFile::ReadOnly))106//增加⼀个⼀级⼦节点以及元素107 QDomDocument doc;108if(!doc.setContent(&file))109 {110 file.close();111return;112 }113 file.close();114115 QDomElement root=doc.documentElement();116 QDomElement book=doc.createElement("book");117 book.setAttribute("id",3);118 book.setAttribute("time","1813/1/27");119 QDomElement title=doc.createElement("title");120 QDomText text;121 text=doc.createTextNode("Pride and Prejudice");122 title.appendChild(text);123 book.appendChild(title);124 QDomElement author=doc.createElement("author");125 text=doc.createTextNode("Jane Austen");126 author.appendChild(text);127 book.appendChild(author);128 root.appendChild(book);129130if(!file.open(QFile::WriteOnly|QFile::Truncate)) //先读进来,再重写,如果不⽤truncate就是在后⾯追加内容,就⽆效了131return;132//输出到⽂件133 QTextStream out_stream(&file);134 doc.save(out_stream,4); //缩进4格135 file.close();136 }137138//删减xml内容139void RemoveXml()140 {141//打开⽂件142 QFile file("test.xml"); //相对路径、绝对路径、资源路径都可以143if(!file.open(QFile::ReadOnly))144return;145146//删除⼀个⼀级⼦节点及其元素,外层节点删除内层节点于此相同147 QDomDocument doc;148if(!doc.setContent(&file))149 {150 file.close();151return;152 }153 file.close(); //⼀定要记得关掉啊,不然⽆法完成操作154155 QDomElement root=doc.documentElement();156 QDomNodeList list=doc.elementsByTagName("book"); //由标签名定位157for(int i=0;i<list.count();i++)158 {159 QDomElement e=list.at(i).toElement();160if(e.attribute("time")=="2007/5/25") //以属性名定位,类似于hash的⽅式,warning:这⾥仅仅删除⼀个节点,其实可以加个break 161 root.removeChild(list.at(i));162 }163164if(!file.open(QFile::WriteOnly|QFile::Truncate))165return;166//输出到⽂件167 QTextStream out_stream(&file);168 doc.save(out_stream,4); //缩进4格169 file.close();172//更新xml内容173void UpdateXml()174 {175//打开⽂件176 QFile file("test.xml"); //相对路径、绝对路径、资源路径都可以177if(!file.open(QFile::ReadOnly))178return;179180//更新⼀个标签项,如果知道xml的结构,直接定位到那个标签上定点更新181//或者⽤遍历的⽅法去匹配tagname或者attribut,value来更新182 QDomDocument doc;183if(!doc.setContent(&file))184 {185 file.close();186return;187 }188 file.close();189190 QDomElement root=doc.documentElement();191 QDomNodeList list=root.elementsByTagName("book");192 QDomNode node=list.at(list.size()-1).firstChild(); //定位到第三个⼀级⼦节点的⼦元素193 QDomNode oldnode=node.firstChild(); //标签之间的内容作为节点的⼦节点出现,当前是Pride and Projudice 194 node.firstChild().setNodeValue("Emma");195 QDomNode newnode=node.firstChild();196 node.replaceChild(newnode,oldnode);197198if(!file.open(QFile::WriteOnly|QFile::Truncate))199return;200//输出到⽂件201 QTextStream out_stream(&file);202 doc.save(out_stream,4); //缩进4格203 file.close();204 }205206int main(int argc, char *argv[])207 {208209 qDebug()<<"write xml to file...";210 WriteXml();211 qDebug()<<"read xml to display...";212 ReadXml();213 qDebug()<<"add contents to xml...";214 AddXml();215 qDebug()<<"remove contents from xml...";216 RemoveXml();217 qDebug()<<"update contents to xml...";218 UpdateXml();219return0;220221 }写xml1 <?xml version="1.0" encoding="UTF-8"?>2 <library>3 <book id="1" time="2013/6/13">4 <title>C++ primer</title>5 <author>Stanley Lippman</author>6 </book>7 <book id="2" time="2007/5/25">8 <title>Thinking in Java</title>9 <author>Bruce Eckel</author>10 </book>11 </library>1 <?xml version='1.0' encoding='UTF-8'?>2 <library>3 <book time="2013/6/13" id="1">4 <title>C++ primer</title>5 <author>Stanley Lippman</author>6 </book>7 <book time="2007/5/25" id="2">8 <title>Thinking in Java</title>9 <author>Bruce Eckel</author>10 </book>11 <book time="1813/1/27" id="3">12 <title>Pride and Prejudice</title>13 <author>Jane Austen</author>14 </book>15 </library>删除xml1 <?xml version='1.0' encoding='UTF-8'?>2 <library>3 <book time="2013/6/13" id="1">4 <title>C++ primer</title>5 <author>Stanley Lippman</author>6 </book>7 <book time="2007/5/25" id="2">8 <title>Thinking in Java</title>9 <author>Bruce Eckel</author>10 </book>11 <book time="1813/1/27" id="3">12 <title>Pride and Prejudice</title>13 <author>Jane Austen</author>14 </book>15 </library>更新xml1 <?xml version='1.0' encoding='UTF-8'?>2 <library>3 <book id="1" time="2013/6/13">4 <title>C++ primer</title>5 <author>Stanley Lippman</author>6 </book>7 <book id="3" time="1813/1/27">8 <title>Emma</title>9 <author>Jane Austen</author>10 </book>11 </library>。
c#操作XML(读XML-写XML-更新-删除节点-与dataset结合等)

c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)已知有一个XML文件(bookstore.xml)如下:Corets, Eva5.951、插入节点往节点中插入一个节点:XmlDocument xmlDoc=new XmlDocument();xmlDoc.Load("bookstore.xml");XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找XmlElement xe1=xmlDoc.CreateElement("book");//创建一个节点xe1.SetAttribute("genre","李赞红");//设置该节点genre属性xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性XmlElement xesub1=xmlDoc.CreateElement("title");xesub1.InnerText="CS从入门到精通";//设置文本节点xe1.AppendChild(xesub1);//添加到节点中XmlElement xesub2=xmlDoc.CreateElement("author");xesub2.InnerText="候捷";xe1.AppendChild(xesub2);XmlElement xesub3=xmlDoc.CreateElement("price");xesub3.InnerText="58.3";xe1.AppendChild(xesub3);root.AppendChild(xe1);//添加到节点中xmlDoc.Save("bookstore.xml");结果为:Corets, Eva5.95候捷58.32、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点的文本修改为“亚胜”。
VB.net学习笔记(二十一)XML流的读写

学习笔记(二十一)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中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
读写xml文件已知有一个XML文件(bookstore.xml)如下:<?xml version="1.0"encoding="gb2312"?><bookstore><book genre="fantasy"ISBN="2-3631-4"><title>Oberon's Legacy</title><author>Corets, Eva</author><price>5.95</price></book></bookstore>1、往<bookstore>节点中插入一个<book>节,实现代码如下:protected void btnAddXml_Click(object sender, System.EventArgs e){XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(Server.MapPath("bookstore.xml"));XmlNode root = xmlDoc.SelectSingleNode("bookstore"); //查找<bookstor e>XmlElement xe1=xmlDoc.CreateElement("book");//创建一个<book>节点xe1.SetAttribute("genre","李赞红");//设置该节点genre属性xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性XmlElement xesub1=xmlDoc.CreateElement("title");xesub1.InnerText="CS从入门到精通";//设置文本节点xe1.AppendChild(xesub1);//添加到<book>节点中XmlElement xesub2=xmlDoc.CreateElement("author");xesub2.InnerText="候捷";xe1.AppendChild(xesub2);XmlElement xesub3=xmlDoc.CreateElement("price");xesub3.InnerText="58.3";xe1.AppendChild(xesub3);root.AppendChild(xe1);//添加到<bookstore>节点中xmlDoc.Save(Server.MapPath("bookstore.xml"));}添加节点后的bookstore.xml如下:<?xml version="1.0"encoding="gb2312"?><bookstore><book genre="fantasy"ISBN="2-3631-4"><title>Oberon's Legacy</title><author>Corets, Eva</author><price>5.95</price></book><book genre="李赞红"ISBN="2-3631-4"><title>CS从入门到精通</title><author>候捷</author><price>58.3</price></book></bookstore>2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
protected void btnUpdateXml_Click(object sender, System.EventArgs e){XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(Server.MapPath("bookstore.xml"));XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNode s;//获取bookstore节点的所有子节点foreach(XmlNode xn in nodeList)//遍历所有子节点{ XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”{xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点foreach(XmlNode xn1 in nls)//遍历{XmlElement xe2=(XmlElement)xn1;//转换类型if(=="author")//如果找到{xe2.InnerText="亚胜";//则修改break;//找到退出来就可以了}}break;}}xmlDoc.Save(Server.MapPath("bookstore.xml"));//保存}修改后的结果为:<?xml version="1.0"encoding="gb2312"?><bookstore><book genre="fantasy"ISBN="2-3631-4"><title>Oberon's Legacy</title><author>Corets, Eva</author><price>5.95</price></book><book genre="update李赞红"ISBN="2-3631-4"><title>CS从入门到精通</title><author>亚胜</author><price>58.3</price></book></bookstore>3、删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" ISBN="2-3631-4">节点。
protected void btnDeleteXml_Click(object sender, System.EventArgs e){XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(Server.MapPath("bookstore.xml"));XmlNodeList xnl = xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点foreach (XmlNode xn in xnl){XmlElement xe=(XmlElement)xn;if(xe.GetAttribute("genre")=="fantasy"){xe.RemoveAttribute("genre");//删除genre属性}else if(xe.GetAttribute("genre")=="update李赞红"){xe.RemoveAll();//删除该节点的全部内容}}xmlDoc.Save(Server.MapPath("bookstore.xml"));//保存}删除后的结果为:<?xml version="1.0"encoding="gb2312"?><bookstore><book ISBN="2-3631-4"><title>Oberon's Legacy</title><author>Corets, Eva</author><price>5.95</price></book><book></book></bookstore>。