DOM解析XML文件

原创 2011年10月16日 20:33:19

今天复习了一下DOM解析XML文件 

Student.java此类用来保存解析出来的数据;

public class Student {
	String name;
	String sex;
	int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

解析代码:

public class DOMParseXml {
	public static void main(String[] args) {
		DOMParseXml parse = new DOMParseXml();
//		ArrayList<Student> list = parse.parseXml();
		parse.createXml();
	}

	public ArrayList<Student> parseXml() {
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document document = builder.parse("test.xml");
			ArrayList<Student> list = new ArrayList<Student>();
			NodeList nodeList = document.getElementsByTagName("student");
			for (int i = 0;i<nodeList.getLength();i++){
				Element element = (Element) nodeList.item(i);
				String name = element.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
				String sex = element.getElementsByTagName("sex").item(0).getFirstChild().getNodeValue();
				String age = element.getElementsByTagName("age").item(0).getFirstChild().getNodeValue();
				
				Student student = new Student();
				student.setAge(Integer.parseInt(age));
				student.setName(name);
				student.setSex(sex);
				list.add(student);
				
				System.out.println(name+","+sex+","+age);
			}
			return list;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	
	public void createXml(){
		try {
			DocumentBuilderFactory factory = 
				DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = 
				factory.newDocumentBuilder();
			Document document = builder.newDocument();//节点都是由文本创建
			
			Element root = document.createElement("books");
			document.appendChild(root);//添加根节点;
			
			Element book1 = document.createElement("book");
			Element book2 = document.createElement("book");
			Element book3 = document.createElement("book");
			
			root.appendChild(book1);
			root.appendChild(book2);
			root.appendChild(book3);
			
			//创建三级节点
			Element name = document.createElement("name");
			name.setTextContent("管理心理学");
			Element type = document.createElement("type");
			type.setTextContent("管理学");
			Element price = document.createElement("price");
			price.setTextContent("55.12");
			
			book1.appendChild(name);
			book1.appendChild(type);
			book1.appendChild(price);
			
			//创建三级节点
			Element name2 = document.createElement("name");
			name2.setTextContent("计算机基础");
			Element type2 = document.createElement("type");
			type2.setTextContent("计算机");
			Element price2 = document.createElement("price");
			price2.setTextContent("98.32");
			
			book2.appendChild(name2);
			book2.appendChild(type2);
			book2.appendChild(price2);
			
			//创建三级节点
			Element name3 = document.createElement("name");
			name3.setTextContent("教育管理学");
			Element type3 = document.createElement("type");
			type3.setTextContent("教育学");
			Element price3 = document.createElement("price");
			price3.setTextContent("25.13");
			
			book3.appendChild(name3);
			book3.appendChild(type3);
			book3.appendChild(price3);
			
			
			TransformerFactory transFactory=TransformerFactory.newInstance();//调用newTransformer()方法得到一个Transformer对象
			Transformer transformer=transFactory.newTransformer();
			//给文件转换器设置字符编码
			transformer.setOutputProperty("encoding", "utf-8");
			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
			DOMSource  domSource=new DOMSource(document);
			File file=new File("newXML.xml");
			FileOutputStream out=new FileOutputStream(file);
			StreamResult xmlResult=new StreamResult(out);
			transformer.transform(domSource, xmlResult);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huangbiao86/article/details/6878588

JavaScript DOM编程

本Java视频教程涵盖 JavaScript DOM 编程的全部核心技术。JavaScript DOM 编程是编写 Ajax 程序的必备技术,也是 Java 程序员必须掌握且熟练运用的技术之一。   涉及到 10 余个真实的企业应用案例,部分案例使用了 XPath 技术。
  • 2015年05月11日 15:22

DOM解析XML文件例子

  • 2010年02月06日 01:28
  • 1.77MB
  • 下载

Android中DOM解析XML文件

一、在assets文件中写xml文件[html] view plaincopyprint?xmlversion="1.0"encoding="UTF-8"?> persons> personid="2...
  • chrp99
  • chrp99
  • 2013-06-03 20:14:38
  • 4913

利用DOM解析和创建xml文件

XML解析器是指可以解析XML文件的程序 常见解析器有 1.     SAX解析器,用于XML的简单API 2.     DOM解析器,文档对象模型 文档对象模型就是利用对象来把文档模型化,这...
  • moonhelena
  • moonhelena
  • 2016-07-20 23:03:49
  • 537

用dom解析如下xml文件内容

用dom解析如下xml文件内容 成都春熙路 成都盐市口 成都布鲁明顿 解析之后把所有年龄大于18的人的信息存储在List对象中, User类...
  • miachen520
  • miachen520
  • 2016-06-30 18:31:15
  • 891

解析XML的两种方法

  • 2010年05月11日 12:00
  • 6.57MB
  • 下载

DOM解析XML文件并添加到数据库中

//解析本地文件XML内容(放在assets下)             Android                 Android Studio         ...
  • Famor
  • Famor
  • 2016-06-21 20:04:41
  • 278

Java 应用DOM方式解析XML文件

引入java为啥需要解析XML的方法?xml的优势:它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或...
  • qq_23473123
  • qq_23473123
  • 2016-05-15 13:53:25
  • 2759

通过Dom方式解析xml文件

此项目通过简单的天气情况显示来实现xml文件的解析 1. 搭建环境 1)创建如下图的包、类及文件 2)布局文件的大概样式如下图所示,用到四个TextView控件和一个RadioButton控件 ...
  • lyy1104
  • lyy1104
  • 2014-06-04 19:15:49
  • 4386

Python:Dom解析XML文件(读XML)

这一篇文章接着前一篇来接续讲解如何使用Dom方式操作XML数据,这一篇文章主要介绍如何解析(parse)XML文件,本文实例XML文件是上一篇的生成的文件,我们看看能不能完整的读出来,这个XML文件内...
  • zhou191954
  • zhou191954
  • 2012-12-03 22:36:16
  • 1244
收藏助手
不良信息举报
您举报文章:DOM解析XML文件
举报原因:
原因补充:

(最多只允许输入30个字)