VBNet中用XML替代INI配置功能的完整教程

上传人:仙*** 文档编号:72062184 上传时间:2022-04-07 格式:DOC 页数:7 大小:497.64KB
返回 下载 相关 举报
VBNet中用XML替代INI配置功能的完整教程_第1页
第1页 / 共7页
VBNet中用XML替代INI配置功能的完整教程_第2页
第2页 / 共7页
VBNet中用XML替代INI配置功能的完整教程_第3页
第3页 / 共7页
点击查看更多>>
资源描述
VB.Net中用XML替代INI配置功能的完整教程一、 前言1二、 内容1第一步:新建一个项目1第二步:新建一个类1第三步:写类代码1第四步:调用5第五步:测试6三、尾声7四、附:实例7一、 前言众所周知,xml文件很强大,从某种程度上说它完全替代ini也不为过,网上也有许多用VB.net编写xml文件的实例,但几乎找不到一个完整的xml替代ini的实例(也许是我太菜?),于是自己写了一个XML替代INI配置功能的完整类(当然,也可以改为模块),通过该类,创建、调用一个xml配置文件可以像VB6.0中配置INI文件一样简简单单,在Microsoft Visual Studio 2012中测试通过,好了,废话不多说,看文!二、 内容第一步:新建一个项目首先,打开VB.Net,新建一个项目,这不用说了吧_,咱现在是演示,一切命名都按默认的吧。第二步:新建一个类接着,新建一个类,还是默认命名(注意是类,不是模块)。第三步:写类代码重点的代码来了,在类中写入以下代码:= 代码开始,勿复制本行 =Imports System.IOImports System.XmlPublic Class Class1 * *模 块 名:XML_操作 *作 用:完整替代 ini 的 xml 操作类 *创 建 人:灵魂的缠绵 *日 期:2013-7-14 *#Region 变量声明区 Public Shared Root As String = My.Application.Info.AssemblyName#End Region#Region XML_创建 【创建一个XML文档】 根据XML文件路径创建 XML文件路径 Public Shared Function XML_Create(ByVal XmlPath As String) Try Dim XmlWrite As New System.Xml.XmlTextWriter(XmlPath, System.Text.Encoding.GetEncoding(GB2312) XmlWrite.Formatting = System.Xml.Formatting.Indented 自动缩进 XmlWrite.WriteStartDocument(True) 开始一个文档 自动编写版本并具有独立属性的XML声明 XmlWrite.WriteStartElement(Root) 开始根元素 XmlWrite.WriteEndElement() 关闭根元素 XmlWrite.WriteEndDocument() 文档结束 XmlWrite.Flush() 刷新 XmlWrite.Close() 关闭 Return True Catch ex As Exception Return False MsgBox(Err.Description) End Try End Function#End Region#Region XML_读写_公共 【XML_读写_公共】 根据读写状态判断读写操作 有完整的父、子节点就改写子节点内容 否则创建,并根据节点预设值写子节点内容 读写状态 父节点 子节点 节点内容 节点预设值 XML文件路径 Public Shared Function XML_ReadWrite_Common(ByVal ReadWrite_Condition As Boolean, ByVal XmlNodeF As String, ByVal XmlNodeZ As String, ByVal XmlNodeN As String, ByVal XmlNodeY As String, ByVal XmlPath As String) As String Try XML_ReadWrite_Common = Nothing If File.Exists(XmlPath) = False Then Call XML_Create(XmlPath) XML文件不存在就创建 Dim VE As Boolean = Nothing 设置一个值 用于判断是否读取的情况下写入 Dim XmlDoc As New Xml.XmlDocument() XmlDoc.Load(XmlPath) Dim New_Root As Xml.XmlNode = XmlDoc.SelectSingleNode(Root) Dim New_XmlNodeF As Xml.XmlElement = Nothing Dim New_XmlNodeZ As Xml.XmlElement = Nothing If XmlNodeN Is Nothing Then XmlNodeN = XmlNodeY Dim NodePathF As System.Xml.XmlNode = XmlDoc.SelectSingleNode(Root & / & XmlNodeF) If NodePathF Is Nothing Then 父节点不存在 创建一个从父节点开始的完整的节点 New_XmlNodeF = XmlDoc.CreateElement(XmlNodeF) New_XmlNodeZ = XmlDoc.CreateElement(XmlNodeZ) New_XmlNodeZ.InnerText = XmlNodeN New_XmlNodeF.AppendChild(New_XmlNodeZ) New_Root.AppendChild(New_XmlNodeF) VE = True If ReadWrite_Condition = True Then XML_ReadWrite_Common = XmlNodeY Else 父节点存在 判断子节点是否存在 Dim NodePathZ As System.Xml.XmlNode = XmlDoc.SelectSingleNode(Root & / & XmlNodeF & / & XmlNodeZ) If NodePathZ Is Nothing Then 子节点不存在 创建一个从子节点开始的完整的节点 New_XmlNodeZ = XmlDoc.CreateElement(XmlNodeZ) New_XmlNodeZ.InnerText = XmlNodeN New_Root.SelectSingleNode(XmlNodeF).AppendChild(New_XmlNodeZ) If ReadWrite_Condition = True Then XML_ReadWrite_Common = XmlNodeY Else 子节点存在 判断是读取还是写入 If ReadWrite_Condition = True Then 当读写状态为读时 If VE = True Then 在读时写入 读取的值为预设值 XML_ReadWrite_Common = XmlNodeY Else 读取的值为子节点的值 XML_ReadWrite_Common = New_Root.SelectSingleNode(XmlNodeF).SelectSingleNode(XmlNodeZ).InnerText End If Else 当读写状态为写时 New_Root.SelectSingleNode(XmlNodeF).SelectSingleNode(XmlNodeZ).InnerText = XmlNodeN End If End If End If xmlDoc.Save(XmlPath) 保存 Catch ex As Exception Return False MsgBox(Err.Description) End Try End Function#End Region#Region XML_读取 【读取节点】 根据父节点和子节点定位 如果子节点不存在或无任何内容则根据节点预设值创建 父节点 子节点 节点预设值 XML文件路径 Public Shared Function XML_Read(ByVal XmlNodeF As String, ByVal XmlNodeZ As String, ByVal XmlNodeY As String, ByVal XmlPath As String) As String Try XML_Read = XML_ReadWrite_Common(True, XmlNodeF, XmlNodeZ, Nothing, XmlNodeY, XmlPath) Catch ex As Exception Return False MsgBox(Err.Description) End Try End Function#End Region#Region XML_写入 【写节点】 根据父节点和子节点定位 如果子节点不存在或无任何内容则根据节点内容创建,存在则根据节点内容覆盖原数据 父节点 子节点 节点内容 XML文件路径 Public Shared Function XML_Write(ByVal XmlNodeF As String, ByVal XmlNodeZ As String, ByVal XmlNodeN As String, ByVal XmlPath As String) Try Call XML_ReadWrite_Common(False, XmlNodeF, XmlNodeZ, XmlNodeN, Nothing, XmlPath) Return True Catch ex As Exception Return False MsgBox(Err.Description) End Try End Function#End RegionEnd Class= 代码结束,勿复制本行 =好了,这样类就写好了,为了便于审阅,单击左边的“-”将各功能代码折叠起来第四步:调用最后,可以调用了,调用前先做下准备工作:在窗口Form1内画4个文本框TextBox和2个按钮Button,布局如下图。在在窗口代码中写入如下代码= 代码开始,勿复制本行 =Public Class Form1 Dim XML_路径 As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & XML配置测试.xml Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 写入 Call Class1.XML_Write(TextBox1.Text, TextBox2.Text, TextBox3.Text, XML_路径) End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 读取 TextBox4.Text = Class1.XML_Read(TextBox1.Text, TextBox2.Text, TextBox3.Text, XML_路径) End SubEnd Class= 代码结束,勿复制本行 =第五步:测试好了,一切搞定,F5运行测试,由于我默认把路径设为桌面,所以在配置文件就是桌面上的XML配置测试.xml这是文件内容: 内容 三、尾声OK,本文到处结束,对了,注意以下几点事项:1. 本实例中只支持2层结构,即父节点、子节点和子节点包含的值,有需要可以自己改动2. 父节点、子节点的命名不能以数字、符号开头3. 内容即子节点的值可以是多行文本四、附:实例7
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!