java DOM解析XML文件
来源:互联网 发布:招聘网络技术员图片 编辑:程序博客网 时间:2024/05/22 07:50
转自: http://www.cnblogs.com/wpcnblog/archive/2011/07/09/2101651.html
http://blog.csdn.net/redarmy_chen/article/details/12912065
</pre>1.打印xml文件内容<pre name="code" class="java">package com.test;import java.io.File;import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.*;public class xmldisplay {public static void main(String args[]) {try {//建一个个解析器工厂,来获得一个具体的解析器对象DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();/*当获得一个工厂对象后,使用它的静态方法newDocumentBuilder()方法可以获得一个DocumentBuilder对象,这个对象代表了具体的DOM解析器 可以对XML文件进行解析*/DocumentBuilder builder = factory.newDocumentBuilder();//返回一个Document对象Document doc = builder.parse("d://links.xml");//对Document对象调用normalize(),可以去掉XML文档中作为格式化内容的空白而映射在DOM树中 的不必要的Text Node对象doc.normalize();/*我们可以得到一个NodeList对象,一个Node对象代表了一个XML文档中的一个标签元素,而NodeList对象,观其名而知其意,所代表的 是一个Node对象的列表XML文件所对应link标签的内容*/NodeList links = doc.getElementsByTagName("link");for (int i = 0; i < links.getLength(); i++) {//item()可以获取每一个node对象Element link = (Element) links.item(i);System.out.println("Content:");System.out.println(link.getElementsByTagName("text").item(0).getFirstChild().getNodeValue());System.out.print("URL: ");System.out.println(link.getElementsByTagName("url").item(0).getFirstChild().getNodeValue());System.out.print("Author: ");System.out.println(link.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());System.out.print("Date: ");Element linkdate = (Element) link.getElementsByTagName("date").item(0);String day = linkdate.getElementsByTagName("day").item(0).getFirstChild().getNodeValue();String month = linkdate.getElementsByTagName("month").item(0).getFirstChild().getNodeValue();String year = linkdate.getElementsByTagName("year").item(0).getFirstChild().getNodeValue();System.out.println(day + "-" + month + "-" + year);System.out.print("Description: ");System.out.println(link.getElementsByTagName("description").item(0).getFirstChild().getNodeValue());System.out.println();}} catch (Exception e) {e.printStackTrace();}}}
2.往xml文件中写入
package com.test;import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;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.NodeList;import org.w3c.dom.Text;public class xmlldisplay1 {public static void main(String args[]) throws Exception {//建一个个解析器工厂,来获得一个具体的解析器对象DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();/*当获得一个工厂对象后,使用它的静态方法newDocumentBuilder()方法可以获得一个DocumentBuilder对象,这个对象代表了具体的DOM解析器 可以对XML文件进行解析*/DocumentBuilder builder = factory.newDocumentBuilder();//返回一个Document对象Document doc = builder.parse("d://links.xml");//对Document对象调用normalize(),可以去掉XML文档中作为格式化内容的空白而映射在DOM树中 的不必要的Text Node对象doc.normalize();/*我们可以得到一个NodeList对象,一个Node对象代表了一个XML文档中的一个标签元素,而NodeList对象,观其名而知其意,所代表的 是一个Node对象的列表XML文件所对应link标签的内容*/NodeList links = doc.getElementsByTagName("link"); String text="Homepage"; String url="www.hzliu.com"; String author="Hzliu"; String discription="!!!"; Text textseg; Element link=doc.createElement("links"); Element linktext=doc.createElement("text"); textseg=doc.createTextNode(text); linktext.appendChild(textseg); link.appendChild(linktext); // doc.getDocumentElement().appendChild(link); Element linkurl=doc.createElement("url"); textseg=doc.createTextNode(url); linktext.appendChild(textseg); link.appendChild(linkurl); doc.getDocumentElement().appendChild(link); TransformerFactory tFactory =TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new java.io.File("d://links.xml")); transformer.transform(source, result);}////我们希望在上面的XML文件中加入一个新的link节点,因而首先还是要读入links.xml文件,构建一个DOM树,然后再对这个DOM树进行修改(添加节点),最后把修改后的DOM写回到links.xml文件中:}
0 1
- Java--Dom解析XML文件
- java DOM解析XML文件
- Java DOM解析XML文件
- Java 解析 XML 文件之 DOM 解析
- JAVA解析XML文件之DOM解析
- java 运用dom解析xml文件之一.
- java用dom解析xml文件心得
- 利用java Dom解析XML文件
- 利用java的Dom解析XML文件
- JAVA语言利用DOM解析XML文件
- Java使用DOM解析XML文件
- 运用java读取xml文件---DOM 解析
- java使用DOM解析XML文件
- Java之DOM方式解析XML文件
- Java解析XML文件方法之一(DOM)
- Java——DOM解析XML文件
- Java中的Xml文件解析(DOM)
- Java之DOM解析XML文件
- SimpleJbdcTemplate类
- 如何运行linux shell程序
- eclipse中,Save Failed Negative time
- linux使用jconsole
- static对局部变量的作用
- java DOM解析XML文件
- 【解决】 无法打开包括文件:“windows.h”: No such file or directory
- asp.net mvc 使用IIS配合VS调试
- 【c++程序】浅层复制构造函数
- SharedPreferences详解
- su authentication failure&ubuntu root被禁用的解决方法
- Linux下PS命令详解
- 关于ios异步加载图片的三个开源项目
- Http 响应码类型汇总