xml解析――增删改查操作后将其修改结果保存
一、可扩展标记语言xml:Extensible Markup Language Java代码下载
//得到解析工厂对象 DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance(); //生产一个解析器对象 DocumentBuilderbuilder=factory.newDocumentBuilder(); //开始解析xml文件,得到的解析结果是一个Document对象,Document对象叫做文档树对象 Documentdocument=builder.parse("stus.xml");
Java代码
Elementroot=(Element)dom.getFirstChild(); //获得所有stu节点 NodeListlist=dom.getElementsByTagName("stu"); for(inti=0;i<list.getLength();i++){ Nodenode=list.item(i); if(nodeinstanceofElement){ Elemente=(Element)node; //得到节点的属性值,与要删除的结点的属性值进行比较,然后移除该属性值对应的结点 Stringnum=e.getAttribute("num"); if(num.equals("02")){ root.removeChild(e); break; } } }
intj=0;j<list.getLength();j++){ Nodeno=list.item(j); if(noinstanceofElement){ Elementel=(Element)no; Stringn=el.getAttribute("num"); if(n.contains("01")){ el.setAttribute("num","05"); //修改标签值 NodeListli=el.getChildNodes(); intx=0;x<li.getLength();x++){ Noded=li.item(x); if(dinstanceofElement){ Elementee=(Element)d; StringnoN=ee.getNodeName(); if(noN.equals("name")){ ee.setTextContent("小白"); }elseif(noN.equals("age")){ ee.setTextContent("11"); }if(noN.equals("sex")){ ee.setTextContent("男"); } } } }
instanceofElement){ Elementel=(Element)no; Stringn=el.getAttribute("num"); //查找节点,显示其属性值及标签内容 if(n.equals("03")){ System.out.println(no.getNodeName()+"t"+n+no.getTextContent()); } } }
TransformerFactorytf=TransformerFactory.newInstance(); Transformerformer=tf.newTransformer(); former.setParameter("version","1.0"); former.setParameter("encoding","GBK"); //将整个Document对象作为要写入xml文件的数据源 DOMSourcexmlSource=newDOMSource(dom); //要写入的目标文件 StreamResultoutputTarget=new StreamResult(newFile("F:stus2.xml")); former.transform(xmlSource,outputTarget); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |