Java用DOM操作xml
2015-07-27 22:48
519 查看
JAXP DOM方式解析XML文档实例 增删改查 package jiexi; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; //JAXP DOM方式解析XML文档实例 public class JaxpCRUD { public static void main(String[] args) throws Exception { //1,得到解析器DocumentBuilder DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder db=dbf.newDocumentBuilder(); //2,得到代表整个xml文档的Document对象 Document document=db.parse("src/book.xml"); test1(document); } //1、得到具体节点的内容 public static void test1(Document document){//得到第二本书的售价 NodeList list=document.getElementsByTagName("售价"); int length=list.getLength();//获得元素节点的个数 System.out.println(length); Node node=list.item(1);//角标从0开始 System.out.println(node.getTextContent()); } //2、遍历所有元素节点 public static void test2(Node node){ //1,判断node是否是元素节点,如果是,打印该节点 if(node.getNodeType()==Node.ELEMENT_NODE ){//判断是否是元素节点 System.out.println(node.getNodeName()); } //2,判断是否有孩子节点 NodeList children=node.getChildNodes(); for(int i=0;i<children.getLength();i++){ Node n=children.item(i); test2(n);//3,递归调用 } }
//3、修改某个元素节点的主题内容 //将第一本书的售价改为49元 public static void test3(Document document)throws Exception{ //1,找到第一本书的售价节点 NodeList list=document.getElementsByTagName("售价"); Node node=list.item(0); //2,将主题内容改为49元 node.setTextContent("49元"); //3,更新设置 Transformer ts = TransformerFactory.newInstance().newTransformer(); ts.transform(new DOMSource(document), new StreamResult("src/book.xml")); } //4、向指定元素节点中增加子元素节点 //向第一本书中添加节点<优惠价>39</优惠价> public static void test4(Document document)throws Exception{ //1,找到增加节点处的父级元素 Node node=document.getElementsByTagName("书").item(0); //2,创建节点,并添加主体内容 Element ele=document.createElement("优惠价"); ele.setTextContent("39元"); //3,节点添加到父级元素中 node.appendChild(ele); //4,更新设置 Transformer ts=TransformerFactory.newInstance().newTransformer(); ts.transform(new DOMSource(document), new StreamResult("src/book.xml")); } //5、向指定元素节点上增加同级元素节点 //向第二本书中添加优惠价 public static void test5(Document document)throws Exception{ //1,找到添加元素的兄弟节点 Node node=document.getElementsByTagName("售价").item(1); //2,创建节点,并添加内容 Element ele=document.createElement("优惠价"); ele.setTextContent("18元"); //3,节点添加 node.getParentNode().appendChild(ele); //4,更新设置 Transformer ts=TransformerFactory.newInstance().newTransformer(); ts.transform(new DOMSource(document), new StreamResult("src/book.xml")); } //6、删除指定元素节点 //删除优惠价 public static void test6(Document document)throws Exception{ //1,获得优惠价节点 Node node=document.getElementsByTagName("优惠价").item(0); //2,删除节点 node.getParentNode().removeChild(node); //3,更新设置 Transformer ts=TransformerFactory.newInstance().newTransformer(); ts.transform(new DOMSource(document), new StreamResult("src/book.xml")); } //7、操作XML文件属性
public static void test7(Document document){ //得到第一本书的属性 Node node=document.getElementsByTagName("书").item(0); if(node.getNodeType()==Node.ELEMENT_NODE){ Element ele=(Element)node; System.out.println(ele.getAttribute("出版社")); } } //设置第二本书的属性值为新华 public static void test8(Document document)throws Exception{ Node node=document.getElementsByTagName("书").item(1); Element ele=(Element)node; ele.setAttribute("出版社", "新华"); TransformerFactory tf=TransformerFactory.newInstance(); Transformer ts=tf.newTransformer(); ts.transform(new DOMSource(document), new StreamResult("src/book.xml")); } }
相关文章推荐
- 如何在Ubuntu 14.04中安装最新版Eclipse
- String.intern()
- JAVA多线程常见问题。
- Java的11个优点
- Java IO学习【13】利用字节流复制文件的4种方法详解
- JAVA之父子类的构造函数、静态代码块等执行顺序
- Java中isAssignableFrom()方法与instanceof()方法用法
- Java拆解字符串(包括中文)
- JAVA中静态代码块,构造代码块,构造函数的加载顺序
- Android studio导入Eclipse项目,和一些错误的解决
- mac下连接安卓真机测试
- 通过SpringMVC+Annotation实现方法、按钮级别的细粒度权限控制
- Java虚拟机垃圾收集器
- Java项目初学-----满汉楼111
- 查看jdk源码的网站
- 我需要下载哪个版本的eclipse?
- Java 里使用 long 类型的数据一定要在数值后面加上 “L”
- java生成验证码代码
- 使用Maven的插件测试
- Java学习--(一)环境配置与Eclipse安装