首页 > 编程语言 >Java_读取xml文件;

Java_读取xml文件;

时间:2023-08-22 10:36:55浏览次数:36  
标签:xml Java 读取 System person println 节点 out


功能:java读取xml文件源码;

=>person.xml

<?xml version="1.0" encoding="UTF-8"?>
<book>
	<person a='av' b='bv'>
		 <first>wang</first>  
		 <last>laohu</last>  
		 <age>25</age>   
		 <version>中国邮电出版社</version>  
	 </person>   
	 <person>  
	 	 <first>li</first>   
	 	 <last>junjia</last>   
	 	 <age>24</age>   
	 	 <version>清华大学出版社</version>   
	 </person>
</book>

=>JavaReadXml.java

package xmlRead;

import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;

/**
 * xml文件读取类
 * @author 23_11
 * @time: 2013-09-01
 * @url: http://developer.51cto.com/art/200906/128418.htm
 */
public class JavaReadXml {
	/*
	 * Document可以看作是XML在内存中的镜像,那么一旦获取这个Document就意味着可以通过对    
	 * 内存的操作来实现对XML的操作。所以第一步获取XML相关的Document对象。
	 */    
	private Document doc = null;

	/**
	 * 初始化
	 * @param xmlFile
	 * @throws Exception
	 */
	public void init(String xmlFile) throws Exception {
		// 文档创建器工厂  
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		// 文档创建器
		DocumentBuilder db = dbf.newDocumentBuilder();
		// 文档对象    
		doc = db.parse(new File(xmlFile));	// 解析;
	}

	/**
	 * 输出xml信息
	 * @param xmlFile
	 * @throws Exception
	 */    
	public void viewXML(String xmlFile) throws Exception {
		this.init(xmlFile);		// 获取文档对象;
		
		/*
		 * 根元素:在xml文件里,只有一个根元素,先把根元素拿出来看看;
		 */
		Element element = doc.getDocumentElement();
		System.out.println("=>根元素:" + element.getTagName());

		NodeList nodeList = doc.getElementsByTagName("person");
		System.out.println("=>book父节点链的长度:" + nodeList.getLength());

		Node fatherNode = nodeList.item(0);
		System.out.println("=>父节点为:" + fatherNode.getNodeName());

		// 把父节点的属性拿出来    
		NamedNodeMap attributes = fatherNode.getAttributes();

		for (int i = 0; i < attributes.getLength(); i++) {
			Node attribute = attributes.item(i);
			System.out.println("=>person的属性名为:" + attribute.getNodeName()
					+ " 相对应的属性值为:" + attribute.getNodeValue());
		}

		NodeList childNodes = fatherNode.getChildNodes();
		System.out.println("=>person子节点:" + childNodes.getLength());
		for (int j = 0; j < childNodes.getLength(); j++) {
			Node childNode = childNodes.item(j);
			// 如果这个节点属于Element ,再进行取值    
			if (childNode instanceof Element) {
				System.out.println("子节点名为:" + childNode.getNodeName()
						+ "相对应的值为" + childNode.getFirstChild().getNodeValue());
			}
		}

	}

	/**
	 * 测试
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		JavaReadXml parse = new JavaReadXml();

		// 我的XML文件    
		parse.viewXML("person.xml");
	}
}

=>输出结果:

=>根元素:book
=>book父节点链的长度:2
=>父节点为:person
=>person的属性名为:a 相对应的属性值为:av
=>person的属性名为:b 相对应的属性值为:bv
=>person子节点:9
子节点名为:first相对应的值为wang
子节点名为:last相对应的值为laohu
子节点名为:age相对应的值为25
子节点名为:version相对应的值为中国邮电出版社

标签:xml,Java,读取,System,person,println,节点,out
From: https://blog.51cto.com/u_8726024/7186386

相关文章

  • Java_面试题目冰山一角
    特别说明:这些都是偶然遇到的题目(有些是同僚说到,有些是群里说到,有些是书籍提到,总之就是偶然遇到),没有指导作用,切记!再加上正好有空闲,就贴上来供大家探讨,有什么意见建议也可以直接评论什么的!谢谢大家的光临!1、已知Pi可以用函数4*(1–1/3+1/5–1/7+…)计算,项越多越精确,请写......
  • Java_J2EE_轻量_J2EE应用框架;
    ......
  • Java_J2EE_轻量_J2EE轻量级开发环境配置;
    ......
  • JavaScript中的字符串
    在JavaScript中,用于表示文本的类型称为字符串(String)。字符串是一个不可变的有序序列,由16位值组成,其中每个值代表一个Unicode字符。字符串的length属性表示它包含的16位值的数量。JavaScript的字符串(以及数组)使用从零开始的索引,因此第一个16位值的索引是0,第二个值的索引是1,依此类推......
  • java怎么获取最新时间
    importjava.text.SimpleDateFormat;importjava.util.Date;publicclassMain{publicstaticvoidmain(String[]args){Datetime=newDate();//调用Date对象SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");//调......
  • Java SE(1)-环境变量,字面量,进制,数据类型,标识符命名规则
    p4常用CMD命令盘符+冒号 盘符切换dir 查看当前路径下内容cd目录cd\cd..cd目录1\目录2\... 进入多级目录cls 清屏exit退出在cmd中也有代码补全功能,为Tab键win+E键 打开我的电脑p5环境变量想要把任何目录下可以打开指定软件,就可以把软件的路径配置到环境......
  • JAVA方法重载
    JAVA方法重载1.重载就是在一个类中,有相同的函数名称,但是形参不同的函数。2.方法重载的规则:方法名称必须相同。参数列表必须不同(个数不同,或类型不同、参数排列顺序不同等)。方法返回类型可以相同也可以不同。仅仅返回类型不同不足以成为方法的重载。方法名称相同时......
  • JAVA方法
    JAVA方法1.System.out.println(),那么它是什么呢?类。对象。方法2.JAVA方法是语句的集合,它们一起执行一个功能一个方法只做一个功能。3.方法包含一个方法头和一个方法体,下面是方法所有部分修饰符:修饰符,可选的,定义了该方法访问类型。返回值类型:方法可能会返回值。returnVa......
  • JSONObject.toJavaObject
    YgCompanyygCompany=JSONObject.toJavaObject(json,YgCompany.class);这段代码使用了阿里巴巴的fastjson库中的JSONObject.toJavaObject()方法,将JSON字符串转换为Java对象。具体解释如下:1.JSONObject是fastjson库中的一个类,用于处理JSON对象。2.toJavaObject()是JSONObje......
  • java垮平台的原理-垃圾回收-day1
    目录1.跨平台原理2.垃圾回收1.跨平台原理2.垃圾回收(1)Java消除了程序员回收内存空间的职责,提供了系统级别的线程,跟踪内存空间的分配情况,在jvm空闲时,检查并释放内存,而C++,需要开发人员自己回收内存。(2)垃圾回收是在程序运行的过程中自动运行,程序员无法干预。(3)GC--垃圾回收......