首页 > XML简单的增改删操作

XML简单的增改删操作

XML文件的简单增改删,每一个都可以单独拿出来使用。

新创建XML文件xmlversion="1.0"encoding="utf-8"?>

<bookstore>

  <bookgenre="fantasy"ISBN="2-3631-4">

    <title>Oberon's Legacytitle>

    <author>Corets, Evaauthor>

    <price>5.95price>

  book>

bookstore>

 

实现如下:

//插入节点

        protected void btn_Add_Click(object sender, EventArgs e)

        {

            XmlDocument doc = new XmlDocument();

            doc.Load(@"E: uxiaomengSimpleC++CLRstlclrStlClr SampleXMLTestookstore.xml");

 

            XmlNode root = doc.SelectSingleNode("bookstore");//找到根节点

            XmlElement new_ele = doc.CreateElement("book");//文档创建节点

            new_ele.SetAttribute("genre", "历史");

            new_ele.SetAttribute("ISBN", "100-001-*6963");//设置属性

 

            XmlElement new_ele_childone = doc.CreateElement("title");

            new_ele_childone.InnerText = "史记"; //填充新节点内的文本。

            new_ele.AppendChild(new_ele_childone);//给父节点添加子节点。

 

            XmlElement new_ele_childtwo = doc.CreateElement("author");

            new_ele_childtwo.InnerText = "司马迁";

            new_ele.AppendChild(new_ele_childtwo);

 

            XmlElement new_ele_childthree = doc.CreateElement("price");

            new_ele_childthree.InnerText = "90.36";

            new_ele.AppendChild(new_ele_childthree);

 

            root.AppendChild(new_ele);//根节点添加新创建的子节点!

            doc.Save(@"E: uxiaomengSimpleC++CLRstlclrStlClr SampleXMLTestookstore.xml");//记得一定要保存!

 

        }

 

        //更新属性和节点值

        protected void btn_Edit_Click(object sender, EventArgs e)

        {

            XmlDocument doc = new XmlDocument();

            doc.Load(@"E: uxiaomengSimpleC++CLRstlclrStlClr SampleXMLTestookstore.xml");

            XmlNodeList nodes = doc.SelectSingleNode("bookstore").ChildNodes; //找到根节点下的所有子节点。

 

            foreach (XmlElement item in nodes)

            {

                if (item.GetAttribute("genre") == "历史")//找属性

                {

                    item.SetAttribute("genre", "中国古代史");

                }

 

                XmlNodeList childsnodes = item.ChildNodes;

                foreach (XmlElement childitem in childsnodes)

                {

                    if (childitem.Name == "price") //找节点

                    {

                        childitem.InnerText = "199";

                        break;

                    }

                }

            }

            doc.Save(@"E: uxiaomengSimpleC++CLRstlclrStlClr SampleXMLTestookstore.xml");

        }

 

        //删除节点的genre属性,删除price是99的节点

        protected void btn_Del_Click(object sender, EventArgs e)

        {

            XmlDocument doc = new XmlDocument();

            doc.Load(@"E: uxiaomengSimpleC++CLRstlclrStlClr SampleXMLTestookstore.xml");

 

            XmlNode root = doc.SelectSingleNode("bookstore");

 

            foreach (XmlElement item in root.ChildNodes)

            {

                if (item.HasAttribute("genre"))

                {

                    item.RemoveAttribute("genre");

                }

                foreach (XmlElement child_item in item)

                {

                    if (child_item.Name == "price" && child_item.InnerText == "99")

                    {

                        root.RemoveChild(item);

                    }

                }

            }

            doc.Save(@"E: uxiaomengSimpleC++CLRstlclrStlClr SampleXMLTestookstore.xml");

        }

 

转载于:https://www.cnblogs.com/hometown/p/3204229.html

更多相关:

  • 菜鸟一枚,正在学习C++ Gui Qt4,整理很零碎,欢迎批评指正   1.窗口标题: QWidget *window = new QWidget; window->setWindowTitle("Enter Your Age"); **************************************** 关于标题...

  • 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 总体思路是: 比较两个链表头节点,较小的插入新链表指针之后,同时较小链表指针向后移动一位 实现如下: ListNode* mergeTwo...

  • 1.直接调用微软socket对象处理 static void Main(string[] args){try{IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });//在3721端口新建一个TcpListener对象TcpListener listener = new...

  •   现在很多地方都会用到zookeeper, 用到它的地方就是为了实现分布式。用到的场景就是服务注册,比如一个集群服务器,需要知道哪些服务器在线,哪些服务器不在线。   ZK有一个功能,就是创建临时节点,当机器启动应用的时候就会连接到一个ZK节点,然后创建一个临时节点,那么通过获取监听该路径,并且获取该路径下的节点数量就知道有哪些服务...

  • 前台到后台java时data日期类型的转化 在实体类中用@DataTimeFormat,这样设置即使传过来是空的字符串也是可以转的,要和前面传过来的格式一致,如 @XmlElement(name="BeginDate") @DateTimeFormat(pattern="yyyy-MM-dd") private Date begin...

  • 当一个IT组织开始走到需要实施网络边缘的旅程时,他们很快意识到面对的挑战与他们在传统数据中心内所经历的挑战不同。 第一个挑战是空间。与更大的核心或区域数据中心同类产品相比,许多边缘站点的物理尺寸更小,因此,需要仔细计划好,尝试在未为其专门设计的空间中安装硬件。  第二个挑战是运行环境。还必须解决的可能面对的冷热温度变化 ,天气,无...

  • 单向循环链表单链表的一个变形是单向循环链表, 链表的最后一个节点的next域不再为None, 而是指向链表的头节点.单向循环链表如图所示:单向循环链表同样单向循环链表也是要使用python来对它的基本功能进行一个封装. 总体大致的功能如下:is_empty() 判断链表是否为空length() 返回链表的长度travel() 遍历ad...

  • 题目: 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一...

  • 题目:删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为...

  • 【从零开始的ROS四轴机械臂控制】(一)- 实际模型制作、Solidworks文件转urdf与rviz仿真 一、模型制作 1.实际模型制作 2.Solidworks模型制作 二、Solidworks文件转urdf 1.sw_urdf_exporter插件 2.添加坐标系和转轴 3.导出urdf文件 三、rivz仿真...