这篇文章给大家分享的是有关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解析——增删改查操作后将其修改结果保存的方法