`
wfdoublext
  • 浏览: 129892 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

xml read -write -update -remove

    博客分类:
  • .net
阅读更多
<?xml version="1.0"?>
<UserLogin>
  <User>
    <UserCode>001</UserCode>
    <UserName>操作员1</UserName>
    <UserPwd>111</UserPwd>
  </User>
  <User>
    <UserCode>002</UserCode>
    <UserName>操作员2</UserName>
    <UserPwd>222</UserPwd>
  </User>
</UserLogin>
 
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;

/**//// <summary>
/// Xml文件的读写类
/// </summary>
/// 
public class XmlRW
...{
    public XmlRW()
    ...{
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    
    //WriteXml 完成对User的添加操作 
    //FileName 当前xml文件的存放位置
    //UserCode 欲添加用户的编码
    //UserName 欲添加用户的姓名
    //UserPassword 欲添加用户的密码

    public void WriteXML(string FileName,string UserCode,string UserName,string UserPassword)
    ...{
    
        //初始化XML文档操作类
        XmlDocument myDoc = new XmlDocument();
        //加载XML文件
        myDoc.Load(FileName);

        //添加元素--UserCode
        XmlElement ele = myDoc.CreateElement("UserCode");
        XmlText text = myDoc.CreateTextNode(UserCode);

        //添加元素--UserName
        XmlElement ele1 = myDoc.CreateElement("UserName");
        XmlText text1 = myDoc.CreateTextNode(UserName);

        //添加元素--UserPwd
        XmlElement ele2 = myDoc.CreateElement("UserPwd");
        XmlText text2 = myDoc.CreateTextNode(UserPassword);

        //添加节点 User要对应我们xml文件中的节点名字
        XmlNode newElem = myDoc.CreateNode("element", "User", "");

        //在节点中添加元素
        newElem.AppendChild(ele);
        newElem.LastChild.AppendChild(text);
        newElem.AppendChild(ele1);
        newElem.LastChild.AppendChild(text1);
        newElem.AppendChild(ele2);
        newElem.LastChild.AppendChild(text2);

        //将节点添加到文档中
        XmlElement root = myDoc.DocumentElement;
        root.AppendChild(newElem);

        //保存
        myDoc.Save(FileName);
        
    }

    //DeleteNode 完成对User的添加操作 
    //FileName 当前xml文件的存放位置
    //UserCode 欲添加用户的编码

    public void DeleteNode(string FileName, string UserCode)
    ...{
        //初始化XML文档操作类
        XmlDocument myDoc = new XmlDocument();
        //加载XML文件
        myDoc.Load(FileName);

        //搜索指定某列,一般是主键列
        XmlNodeList myNode = myDoc.SelectNodes("//UserCode");

        //判断是否有这个节点

        if (!(myNode == null))
        ...{ 
            //遍历节点,找到符合条件的元素

            foreach (XmlNode  xn in myNode)
            ...{
                if (xn.InnerXml  == UserCode)
                    //删除元素的父节点
                    xn.ParentNode.ParentNode.RemoveChild(xn.ParentNode);
            }
        }

        //保存
        myDoc.Save(FileName);

    }

    //WriteXml 完成对User的修改密码操作
    //FileName 当前xml文件的存放位置
    //UserCode 欲操作用户的编码
    //UserPassword 欲修改用户的密码

    public void UpdateXML(string FileName, string UserCode, string UserPassword)
    ...{

        //初始化XML文档操作类
        XmlDocument myDoc = new XmlDocument();
        //加载XML文件
        myDoc.Load(FileName);

        //搜索指定的节点
        System.Xml.XmlNodeList nodes = myDoc.SelectNodes("//User");

        if (nodes != null)
        ...{
            foreach (System.Xml.XmlNode xn in nodes)
            ...{
                if (xn.SelectSingleNode("UserCode").InnerText == UserCode)
                ...{
                    xn.SelectSingleNode("UserPwd").InnerText = UserPassword;
                }

            }
        }

        myDoc.Save(FileName);

    }

}

 

·使用XmlTextWriter写入XML方法

  private void xmlwriter()
  {
   XmlTextWriter writer= new XmlTextWriter(Server.MapPath("phone4.xml"),null);
   writer.Formatting = Formatting.Indented;  //缩进格式
   writer.Indentation =4;

   writer.WriteStartDocument();

   writer.WriteStartElement("Person");

   writer.WriteStartAttribute("ID",null);
   writer.WriteString("004");
   writer.WriteEndAttribute();

   writer.WriteStartElement("Name");
   writer.WriteString("testWriterName");
   writer.WriteEndElement();

   writer.WriteStartElement("Number");
   writer.WriteString("88888");
   writer.WriteEndElement();

   writer.WriteStartElement("City");
   writer.WriteString("testWriterCity");
   writer.WriteEndElement();

   writer.Flush();
   writer.Close();

  }

 

·使用XmlTextReader读取XML方法

  private void xmlread()
  {
      XmlTextReader reader = new XmlTextReader(Server.MapPath("phone.xml"));
      while(reader.Read())
      {
          if(reader.LocalName.Equals("Name") || reader.LocalName.Equals("Number"))
      {
      this.Label1.Text += reader.ReadString()+"\t";
  }


 

分享到:
评论

相关推荐

    xml文件操作详解crud操作

    在IT行业中,XML文件的操作是必不可少的技能,特别是CRUD(Create, Read, Update, Delete)操作,即创建、读取、更新和删除XML文件中的数据。下面将详细讲解XML文件的CRUD操作。 1. **创建(Create)** 创建XML...

    XML增删改查操作实例

    在处理XML文件时,通常会涉及到对XML文档的四种基本操作:创建(Create)、读取(Read)、更新(Update)和删除(Delete),简称CRUD。 首先,我们来讨论如何进行XML的创建操作。创建XML文件主要包括定义元素、属性...

    Dom4j实现xml的CRUD

    本篇文章将详细讲解如何利用DOM4j在Java环境中实现XML文件的创建(Create)、读取(Read)、更新(Update)和删除(Delete),即CRUD操作,并结合Servlet技术进行实际应用。 1. 创建XML文件 DOM4j提供...

    springmvcmybatis

    &lt;entry key="write" value=",add,insert,create,update,delete,remove," /&gt; &lt;!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --&gt; &lt;!-- 添加 mybatis-config配置上去。--&gt; ...

    dom4j操作xml文件

    2. 解析XML文件:使用`SAXReader.read()`方法解析XML文件,返回一个Document对象。 ```java File file = new File("path_to_your_xml_file.xml"); SAXReader reader = new SAXReader(); Document document = reader....

    xml实现学生信息的增删改查

    此外,为了确保XML的结构完整,每次修改后都需要使用`ElementTree.ElementTree(element)`和`tree.write(filename)`来保存修改。 在提供的`XMLOperate`文件中,可能包含了实现这些功能的Python脚本,可以作为学习和...

    arangodb-java-driver:官方ArangoDB Java驱动程序

    .addCollections(TransactionCollections.readWrite("myCollection")) .withAction("function() { ... }"); TransactionEntity transaction = db.executeTransaction(builder); ``` 总的来说,ArangoDB Java驱动...

    WPTools.v6.29.1.Pro

    - Update to RTF reader to load landscape flag for sections better - when page mirror was used, after a page break the text indentation was sometimes wrong - hyphenation code was broken - workaround ...

    hibernate错误解决方案

    org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker ...

    drupal 6.12

    Failure to remove write permissions to that file is a security risk. Although the default location for the settings.php file is at sites/default/settings.php, it may be in another location if you ...

    使用jquery-mobile+html5实现android本地通讯录

    6. **处理权限**:别忘了在AndroidManifest.xml中添加必要的权限,比如`READ_CONTACTS`和`WRITE_CONTACTS`,以允许Web应用访问通讯录。 7. **打包与测试**:最后,将项目打包成APK,安装到Android设备上进行测试,...

    Android四大组件(笔记+代码)

    &lt;uses-permission android:name="android.permission.WRITE_SMS"/&gt; ``` 然后,收集用户输入的数据,创建`ContentValues`对象,最后调用`ContentResolver`的`insert()`方法插入数据。例如: ```java ContentValues ...

    添加查询联系人信息

    同时,需要处理权限问题,即请求`READ_CONTACTS`和`WRITE_CONTACTS`权限。 - iOS:利用`CNContactStore.requestAccess(for:completionHandler:)`获取权限,然后创建`CNMutableContact`对象,填充相关信息,最后通过...

    Python面试题汇总及答案详解

    5. **文件操作**:文件打开与关闭、读写模式、文件对象方法(read、write、readline、readlines、writelines)、文件遍历、上下文管理器。 6. **字符串处理**:字符串操作(切片、连接、格式化、查找、替换、分割、...

    Java邮件开发Fundamentals of the JavaMail API

    read and write e-mail, whereas MUAs rely on MTAs to handle the actual delivery. The JavaMail API is designed to provide protocol-independent access for sending and receiving messages by dividing ...

    ZendFramework中文文档

    5.4. Zend_Config_Xml 6. Zend_Console_Getopt 6.1. Getopt 简介 6.2. 声明 Getopt 规则 6.2.1. 用短语法声明选项 6.2.2. 用长语法声明选项 6.3. 读取(Fetching)选项和参数 6.3.1. 操作 Getopt 异常 6.3.2...

    C#全能速查宝典

    1.5.19 RemoveAt方法——移除指定索引处的项 118 1.5.20 Replace方法——替换文件或字符串 119 1.5.21 Reverse方法——反转数组元素 120 1.5.22 Sort方法——数组排序 121 1.5.23 Stack类——堆栈 123 第2章 ...

    Python3 菜鸟查询手册

    11.09 字典 update() 方法.png 11.10 字典 values() 方法.png 11.11 字典 pop() 方法.png 11.12 字典 popitem() 方法.png 12 编程第一步.png 13 条件控制.png 14 循环语句.png 15 迭代器与生成器.png 16 ...

Global site tag (gtag.js) - Google Analytics