zoukankan      html  css  js  c++  java
  • c#对xml的创建、查询

    假设一个xml文件内容如下:

        <?xml version="1.0" encoding="UTF-8"?>  
        <Persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.xxx.com/XxxSystem">  
          <Person id="1">  
            <Name>张三</Name>  
            <Age>18</Age>  
          </Person>  
          <Person id="2">  
            <Name>李四</Name>  
            <Age>20</Age>  
          </Person>  
        </Persons>  
    

     创建xml代码如下:

        private void button1_Click(object sender, EventArgs e)  
               {  
                   XmlDocument doc = new XmlDocument();  
                   XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);  
                   doc.AppendChild(dec);  
                   //根节点  
                   XmlElement root = doc.CreateElement("Persons");  
                   doc.AppendChild(root);  
                   root.AddEleAttr(doc, "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");  
                   root.AddEleAttr(doc, "xmlns", "http://www.xxx.com/XxxSystem");  
                   //根节点的每个独立子节点  
                   XmlElement body = doc.CreateElement("Person");  
                   body.AddEleAttr(doc, "id", "1");     
                   body.AddChildNode(doc, "Name", "张三");  
                   body.AddChildNode(doc, "Age", "18");      
                   root.AppendChild(body);  
          
                   //根节点的每个独立子节点  
                   body = doc.CreateElement("Person");  
                   body.AddEleAttr(doc, "id", "2");  
                   body.AddChildNode(doc, "Name", "李四");  
                   body.AddChildNode(doc, "Age", "20");             
                   root.AppendChild(body);  
          
                   doc.Save("person.xml");  
               }  
    

     查询id=2时的姓名和年龄

    private void button2_Click(object sender, EventArgs e)  
           {  
                XmlDocument doc = new XmlDocument();  
                using (StreamReader sr = new StreamReader("person.xml", Encoding.UTF8))  
                {  
                    doc.Load(sr);  
                    XmlNamespaceManager nsMgr = new XmlNamespaceManager(doc.NameTable);  
                    nsMgr.AddNamespace("ns", "http://www.xxx.com/XxxSystem");  
                    XmlNodeList nodes = doc.SelectNodes("//ns:Person[@id=2]", nsMgr);  
                    foreach (XmlNode item in nodes)  
                    {  
                        string name = item.SelectSingleNode("//ns:Name", nsMgr).InnerText;  
                        string age = item.SelectSingleNode("//ns:Age", nsMgr).InnerText;  
                        MessageBox.Show(string.Format("{0}:{1}", name, age));  
                    }  
                }  
           }     
    

    注:上面创建xml用到的两个扩展方法如下:

        /// <summary>  
        /// XML元素添加属性  
        /// </summary>  
        public static void AddEleAttr(this XmlElement src, XmlDocument doc, string name, string value)  
        {  
            XmlAttribute attr = doc.CreateAttribute(name);  
            attr.Value = value;  
            src.Attributes.Append(attr);  
        }  
        /// <summary>  
        /// XML元素添加子节点  
        /// </summary>  
        public static void AddChildNode(this XmlElement src, XmlDocument doc, string name, string innerText)  
        {  
            XmlElement elem = doc.CreateElement(name);  
            elem.InnerText = innerText;  
            src.AppendChild(elem);  
        }  
    
  • 相关阅读:
    LINUX 新手 入门 教程
    mysql 新手入门 官方文档+官方中文文档附地址
    Git常用命令
    修改dotnet运行.netcore web程序默认端口
    centos7.6下部署.netcore3.1web程序
    supervisor安装及使用(转载)
    linux(CentOS7.6)下安装mysql8.0并使用navicat远程访问
    uni-app为组件uni-icons增加自定义图标(超简单)
    常用正则表达式收录(持续更新)
    CentOS7.6安装SQL SERVER 2017
  • 原文地址:https://www.cnblogs.com/gdjlc/p/2908848.html
Copyright © 2011-2022 走看看