浏览 2529 次
锁定老帖子 主题:XML 文件的操作(三)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-08
<?xml version="1.0" encoding="gb2312"?> <?xml-stylesheet type="text/xsl" href="students.xsl"?> <students> <student sn="01"> <name>张三</name> <age>18</age> </student> <student sn="02"> <name>李四</name> <age>20</age> </student> </students> java程序: package com.ibm.xml; import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.Text; import org.xml.sax.SAXException; /** * 对xml节点的添加、删除、修改 * @author Administrator * */ public class DOMConvert { /** * @param args */ public static void main(String[] args) { DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); try { DocumentBuilder db=dbf.newDocumentBuilder(); Document doc=db.parse(new File("students.xml")); //添加新的元素 //创建元素节点 //创建根节点 Element eltStu=doc.createElement("student"); //创建子节点 Element eltName=doc.createElement("name"); Element eltAge=doc.createElement("age"); //创建文本节点 Text txtName=doc.createTextNode("王五"); Text txtAge=doc.createTextNode("19"); //元素节点添加文本节点内容 eltName.appendChild(txtName); eltAge.appendChild(txtAge); //根节点添加子节点 eltStu.appendChild(eltName); eltStu.appendChild(eltAge); //添加的属性 eltStu.setAttribute("sn","03"); //获取子节点 Element root=doc.getDocumentElement(); root.appendChild(eltStu); //删除节点(第一个节点) NodeList nl=root.getElementsByTagName("student"); root.removeChild(nl.item(0)); //修改节点(第一个节点,改成22) Element eltStuChg=(Element)nl.item(0); Node nodeAgeChg=eltStuChg.getElementsByTagName("age").item(0); nodeAgeChg.getFirstChild().setNodeValue("22"); int len=nl.getLength(); for(int i=0;i<len;i++) { Element elt=(Element)nl.item(i); System.out.println("编号: "+elt.getAttribute("sn")); Node nodeName=elt.getElementsByTagName("name").item(0); Node nodeAge=elt.getElementsByTagName("age").item(0); String name=nodeName.getFirstChild().getNodeValue(); String age=nodeAge.getFirstChild().getNodeValue(); System.out.println("姓名: "+name); System.out.println("年龄: "+age); System.out.println("-----------------------------"); } //复制xml内容写到其他的文件中 TransformerFactory tff=TransformerFactory.newInstance(); Transformer tf = tff.newTransformer(); tf.setOutputProperty("encoding","gb2312"); DOMSource source=new DOMSource(doc); StreamResult result=new StreamResult(new File("converted.xml")); tf.transform(source,result); }catch (ParserConfigurationException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } catch (SAXException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } catch (TransformerConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |