分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)

简介: 原文: 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 John B 12 ...
原文: 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)

XML文件 
<?xml version="1.0"?>  
<students> 
     <student>
          <name>John</name>
          <grade>B</grade>
          <age>12</age>
      </student>
      <student>
          <name>Mary</name>
          <grade>A</grade>
          <age>11</age> 
     </student>
      <student> 
         <name>Simon</name>
          <grade>A</grade>
          <age>18</age>
      </student>  
</students> 


 Java解析的代码:

package net.viralpatel.java.xmlparser; 
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.Node;   
import org.w3c.dom.NodeList;     
public class XMLParser {        
	public void getAllUserNames(String fileName) {    
		try {            
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();             
			DocumentBuilder db = dbf.newDocumentBuilder();          
			File file = new File(fileName);               
			if (file.exists()) {              
				Document doc = db.parse(file);            
				Element docEle = doc.getDocumentElement();                     
				// Print root element of the document            
				System.out.println("Root element of the document: "                         + docEle.getNodeName()); 
				NodeList studentList = docEle.getElementsByTagName("student");       
				// Print total student elements in document              
				System.out.println("Total students: " + studentList.getLength()); 
				if (studentList != null && studentList.getLength() > 0) {   
					for (int i = 0; i < studentList.getLength(); i++) {    
						Node node = studentList.item(i);                         
						if (node.getNodeType() == Node.ELEMENT_NODE) {    
							System.out.println("=====================");     
							Element e = (Element) node;                              
							NodeList nodeList = e.getElementsByTagName("name");
							System.out.println("Name: "     + nodeList.item(0).getChildNodes().item(0).getNodeValue());                    
							nodeList = e.getElementsByTagName("grade");   
							System.out.println("Grade: " + nodeList.item(0).getChildNodes().item(0).getNodeValue());
							nodeList = e.getElementsByTagName("age");    
							System.out.println("Age: " + nodeList.item(0).getChildNodes().item(0).getNodeValue());             
							}                       }                   
					} else {            
						System.exit(1);        
						}               }        
			} catch (Exception e) {          
				System.out.println(e);        
				}      
			}      
	public static void main(String[] args) {           
		XMLParser parser = new XMLParser();           
				}		
			parser.getAllUserNames("c:\\test.xml");     
		}  
	} 
}
 

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录
相关文章
|
2月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
206 1
|
5月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
292 14
|
5月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
160 0
|
6月前
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
501 5
|
5月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
384 0
|
6月前
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
412 0
|
9月前
|
存储 设计模式 Java
重学Java基础篇—ThreadLocal深度解析与最佳实践
ThreadLocal 是一种实现线程隔离的机制,为每个线程创建独立变量副本,适用于数据库连接管理、用户会话信息存储等场景。
339 5
|
9月前
|
机器学习/深度学习 人工智能 Java
Java机器学习实战:基于DJL框架的手写数字识别全解析
在人工智能蓬勃发展的今天,Python凭借丰富的生态库(如TensorFlow、PyTorch)成为AI开发的首选语言。但Java作为企业级应用的基石,其在生产环境部署、性能优化和工程化方面的优势不容忽视。DJL(Deep Java Library)的出现完美填补了Java在深度学习领域的空白,它提供了一套统一的API,允许开发者无缝对接主流深度学习框架,将AI模型高效部署到Java生态中。本文将通过手写数字识别的完整流程,深入解析DJL框架的核心机制与应用实践。
597 3
|
7月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
217 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
295 1