当前位置:科学 > 正文

【世界新视野】C#给xml文件添加带属性的父节点及子节点的方法

2023-03-23 13:48:36  来源:逍遥总遥


(资料图片仅供参考)

XML文件内容

xml操作代码示例:

using System.Collections;using System.Data;using System.Xml;using System.Xml.XPath;namespace xmltest{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            XML xml = new XML(Application.StartupPath + "\\config.xml");            string[] attstr = { "mac|08:00:27:00:D8:DC", "ip|192.168.1.1" };            string[] childstr = { "ip|192.168.1.1","name|BBQ"};            xml.AddNodes("config", "ips", attstr,childstr);        }        public class XML        {            string XMLFileName = "";            public XML(string xmlfilename)            {                XMLFileName = xmlfilename;            }            /// <summary>            /// 添加一个带属性的节点,可带子节点(attstr为null时没有属性)            /// </summary>            /// <param name="findnodename">在哪个节点下添加新节点</param>            /// <param name="creatnodename">新节点名称</param>            /// <param name="attstr">新节点属性字符串数组</param>            /// <param name="childinfostr">子节点属性字符串数组</param>            public int AddNodes(string findnodename, string creatnodename, string[] attstr, string[] childinfostr)            {                try                {                    XmlDocument xml = new XmlDocument();                    xml.Load(XMLFileName);                    XmlNode ndroot = xml.SelectSingleNode(findnodename);                    XmlElement nd = xml.CreateElement(creatnodename);                    if (attstr != null)                    {                        for (int i = 0; i < attstr.Length; i++)                        {                            string[] every = attstr[i].Split("|");                            nd.SetAttribute(every[0], every[1]);                        }                    }                    ndroot.AppendChild(nd);                    if (childinfostr != null)                    {                        for (int i = 0; i < childinfostr.Length; i++)                        {                            string[] infos = childinfostr[i].Split("|");                            XmlElement xe = xml.CreateElement(infos[0]);                            XmlText xt = xml.CreateTextNode(infos[1]);                            nd.AppendChild(xe);                            nd.LastChild.AppendChild(xt);                        }                    }                    xml.Save(XMLFileName);                    return 0;                }                catch (Exception ErrMsg)                {                    return 1;                }            }        }    }}

示例说明:

XML xml = new XML(Application.StartupPath + "\\config.xml");

//添加一个节点

string[] attstr = { "mac|08:00:27:00:D8:DC","ip|123"};

//给这个节点再添加子节点


string[] childstr = { "ip|192.168.1.1","name|BBQ"};

xml.AddNodes("config", "ips", attstr,childstr);//config是上级节点

运行结果如下:

注意:如果最后一个参数为null

xml.AddNodes("config", "ips", attstr, null);

则只添加父节点

关键词:

推荐阅读

鲁班发明了什么东西 什么是鲁班发明的?

鲁班发明了什么东西?在鲁班之前,木匠只用斧子和刀子来平整他们建筑用的木材,即使干的很好,也难让人满意。后来通过长期实践,鲁班发现使 【详细】

环氧树脂是什么 环氧树脂的特点

如今,市场上的油漆越来越多,人们有很多选择。不同的油漆有不同的成分和不同的性质和功能,环氧树脂就是其中之一。环氧树脂是用途相对广泛 【详细】

携程网机票预订流程 上机前注意事项

平时出门的时候很多都会选择飞机出行,但是相对于高铁动机来说,机票还是相对较贵的,所以大家平时都会购买特价机票,关于特价机票这一点我 【详细】

什么是大爆炸理论?大爆炸是如何开始的?

什么是大爆炸理论?大爆炸理论是宇宙如何开始的主要解释。简而言之,它描述了我们所知的宇宙,它始于一个无限热且密集的单点,在接下来的138 【详细】

TIKTOK是什么意思?字节跳动介绍

TIKTOK是什么意思?TikTok是抖音的国际版。随着Tik Tok在海外的成功,抖音短片成为中国产品在海外成功的又一杰出代表,被视为中国移动产品 【详细】

关于我们  |  联系方式  |  免责条款  |  招聘信息  |  广告服务  |  帮助中心

联系我们:85 572 98@qq.com备案号:粤ICP备18023326号-40

科技资讯网 版权所有