




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VB.Net中用XML替代INI配置功能的完整教程 TOC o 1-3 h u HYPERLINK l _Toc10382一、 前言 PAGEREF _Toc10382 1 HYPERLINK l _Toc19035二、 内容 PAGEREF _Toc19035 1 HYPERLINK l _Toc4921第一步:新建一个项目 PAGEREF _Toc4921 1 HYPERLINK l _Toc23228第二步:新建一个类 PAGEREF _Toc23228 1 HYPERLINK l _Toc22286第三步:写类代码 PAGEREF _Toc22286 1 HYPERLINK l _To
2、c32249第四步:调用 PAGEREF _Toc32249 5 HYPERLINK l _Toc14404第五步:测试 PAGEREF _Toc14404 6 HYPERLINK l _Toc13356三、尾声 PAGEREF _Toc13356 7 HYPERLINK l _Toc22602四、附:实例 PAGEREF _Toc22602 7前言众所周知,xml文件很强大,从某种程度上说它完全替代ini也不为过,网上也有许多用VB.net编写xml文件的实例,但几乎找不到一个完整的xml替代ini的实例(也许是我太菜?),于是自己写了一个XML替代INI配置功能的完整类(当然,也可以改为模
3、块),通过该类,创建、调用一个xml配置文件可以像VB6.0中配置INI文件一样简简单单,在Microsoft Visual Studio 2012中测试通过,好了,废话不多说,看文!内容第一步:新建一个项目首先,打开VB.Net,新建一个项目,这不用说了吧_,咱现在是演示,一切命名都按默认的吧。第二步:新建一个类接着,新建一个类,还是默认命名(注意是类,不是模块)。第三步:写类代码重点的代码来了,在类中写入以下代码:= 代码开始,勿复制本行 =Imports System.IOImports System.XmlPublic Class Class1 * *模 块 名:XML_操作 *作 用
4、:完整替代 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,
5、 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
6、() 关闭 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 Boolea
7、n, 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 设置一个值 用于判断是否读取的情况下写入
8、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.
9、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
10、 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.I
11、nnerText = 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_R
12、eadWrite_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)
13、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, X
14、mlNodeF, 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 XmlNo
15、deZ 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= 代码结束,勿复制本行 =好了,这样类就写好了,为了便于审阅,单击左边的“
16、-”将各功能代码折叠起来第四步:调用最后,可以调用了,调用前先做下准备工作:在窗口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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年中国佛教协会和中国佛学院招聘笔试真题
- 包仓库合同范本
- 保温棉合同范本
- 2024年清远市英德市市区学校选调教师考试真题
- 乡下老宅转让合同范本
- 包山正规合同范本
- 《三、应用设计模板》教学设计 -2024-2025学年初中信息技术人教版七年级上册
- 三层楼房施工合同范本
- Unit 8 Lesson 46 教学设计 - 2024-2025学年冀教版英语八年级下册
- 第2单元 单元备课说明2024-2025学年新教材七年级语文上册同步教学设计(统编版2024)河北专版
- 电梯维护保养规则(TSG T5002-2017)
- 义务教育数学课程标准(2022年版)解读与案例分析
- 体育概论课外体育活动
- 招商代理及商业运营服务 投标方案(技术方案)
- 屋顶拆除方案
- 如何避免时间浪费
- 小学数学六年级解方程练习600题及答案
- IP地址介绍和子网划分
- 架空绝缘配电线路设计规范
- 2023-2024学年北京重点大学附属实验中学八年级(下)开学数学试卷(含解析)
- 2024年新青岛版(六三制)六年级下册科学全册知识点
评论
0/150
提交评论