XML 文件的操作(三)
- <?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();
- }
- }
- }

浙公网安备 33010602011771号