xml解析——增删改查操作后将其修改结果保存的方法

  介绍

这篇文章给大家分享的是有关xml解析——增删改查操作后将其修改结果保存的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

一、可扩展标记语言xml:可扩展标记语言
,1、XML的作用:1)统一数据传输的格式。2)做小型数据库(文件型数据库]。3)做配置文件,。ini,.propertity,。xml,。cfg
,2、XML文件的基本格式:
,,标签:分为双标签和单标签,双标签的开头和结尾标签名必须一致,大小写一样,/开头的是结尾标签,单标签必须在祝辞前加上/来结尾,单标签中不能放文本。
,,属性:在开始标签中定义一些名值对,值一定是字符串
,3、XML文件的基本构成:
,,1)在第一行是XML声明,,& lt; ?xml version=?.0”;编码=癠TF-8",比;
,,2)必须且只能有一对根标签
,,3)标签可以一层一层嵌

二,写一个简单的xml文档学生。xml然后用Dom进行解析。
,,DOM文档对象模型:文档对象模型
,,DOM解析的基本思路:将整个XML文件一次性读入内存,将整个XML看做一棵文档树,XML中的每一个标签,属性,文本都看做是树上的一个结点,然后可以对结点进行增删改查的操作。
,已经编辑好的学生。xml文档

& lt; ?xml version=?.0”;编码=癠TF-8" ?比;   & lt;学生类=?401”;比;   & lt; stu num=?1“比;   & lt; name>张三& lt;/name>   & lt; age> 19 & lt;/age>   & lt; sex>男& lt;/sex>   & lt;/stu>   & lt; stu num=?2“比;   & lt; name>李四& lt;/name>   & lt; age> 20 & lt;/age>   & lt; sex>女& lt;/sex>   & lt;/stu>   & lt; stu num=?3“比;   & lt; name>王五& lt;/name>   & lt; age> 21 & lt;/age>   & lt; sex>男& lt;/sex>   & lt;/stu>   & lt;/stus>

三,开始解析
,,创建解析工厂

//得到解析工厂对象   DocumentBuilderFactory工厂=DocumentBuilderFactory.newInstance ();//生产一个解析器对象   DocumentBuilder builder=factory.newDocumentBuilder ();//开始解析xml文件,得到的解析结果是一个文档对象,文档对象叫做文档树对象   文档dom=builder.parse (“stus.xml");

1,增加节点
,,基本思路:首先创建一个新的元素节点,将元素节点追加到根节点后面,设置其节点属性。创建标签,设置标签文本内容,最后将新标签添加到新的元素节点中。
代码:

//创建一个新的元素节点   斯图=dom.createElement元素(“stu");//将元素节点追加到根节点后面   root.appendChild (stu);//设置节点属性   stu.setAttribute (“num",“04”);//创建标签   元素名称=dom.createElement (“name");   元素的年龄=dom.createElement (“age");   元素性=dom.createElement (“sex");//设置标签文本内容   name.setTextContent(“赵六“);   age.setTextContent (“19”);   sex.setTextContent(“女“);//把标签添加到新的元素节点斯图中   stu.appendChild(名称);   stu.appendChild(年龄);   stu.appendChild(性);

2,删除节点
基本思路:获得要删除的节点,然后得到节点的属性值,与要删除的节点的属性值进行比较,如果该属性值对应的节点存在则移除该节点。
代码:

//获得根节点   根元素=(元素)dom.getFirstChild ();//获得所有斯图节点   节点列表列表=dom.getElementsByTagName (“stu");   for (int i=0;我& lt;list.getLength ();我+ +){   节点的节点=list.item(我);   如果(节点实例元素){   元素e=(元素)节点;//得到节点的属性值,与要删除的结点的属性值进行比较,然后移除该属性值对应的结点   字符串num=e.getAttribute (“num");   如果(num.equals (“02“)) {   root.removeChild (e);   打破;   }   }   }

3,修改节点
基本思路:获得要修改的节点,修改其属性值,然后获得该节点下的标签,修改标签中的文本内容。
代码:

//修改节点属性   for (int j=0;j & lt;list.getLength ();j + +) {   节点没有=list.item (j);   如果没有实例元素){   元素el=(元素);   字符串n=el.getAttribute (“num");   如果(n.contains (“01”)) {   el.setAttribute (“num"“05”);//修改标签值   节点列表li=el.getChildNodes ();   for (int x=0;x & lt;li.getLength ();x + +) {   节点d=li.item (x);   如果(d instanceof元素){   元素ee=(元素)d;   字符串不=ee.getNodeName ();   如果(noN.equals (“name")) {   ee.setTextContent(“小白“);   }else if (noN.equals (“age")) {   ee.setTextContent (“11”);   }else if (noN.equals (“sex")) {   ee.setTextContent(“男“);   }   }   }   }

xml解析——增删改查操作后将其修改结果保存的方法