OAF_文件系列5_实现OAF解析XML文件javax.xml.parsers(案例)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 20150729 Created By BaoXinjian 一、摘要 通过javax.xml.parsers.DocumentBuilder解析从系统系统导入的XML文件 此过程需要用到一些包方法 1.

20150729 Created By BaoXinjian

一、摘要


通过javax.xml.parsers.DocumentBuilder解析从系统系统导入的XML文件

此过程需要用到一些包方法

1. File:获取XML文件

2. DocumentBuilderFactory / DocumentBuilder : 解析XML文件,获取节点结构

3. 节点值获取

3.1 NodeList:获取文件的节点列表

3.2 Node:获取节点列表中的某一个节点

3.3 Element:获取节点中的某一个子元素,并获取值

 

二、实现分析


1. 创建ImportEmployee.java程序

 

2. 实现解析的主要过程

package bxj.oracle.apps.ap.java;

import java.io.File;
import org.w3c.dom.*; import javax.xml.parsers.*; import org.xml.sax.*; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; public class importEmployeeXML { //获取节点列表 private void importEmployeeXML(String xmlType) { try { //初始化参数,获取文件 DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); String empfilepath = "/u2/VIS/visappl/gavin/employeexml/employeexml.xml"; empfilepath=empfilepath.replace("/", File.separator); //获取更节点 File empxmlfile = new File(empfilepath); Document doc = docBuilder.parse (empxmlfile); doc.getDocumentElement ().normalize (); System.out.println ("Root element of the doc is " + doc.getDocumentElement().getNodeName()); //获取EMPLOYEE节点列表 NodeList listOfEmployees = doc.getElementsByTagName(xmlType); System.out.println("Employee Record Count="+listOfEmployees.getLength()); //循环根节点列表取值 for ( int i=0; i < listOfEmployees.getLength(); i++) { Node empNode = listOfEmployees.item(i); if (empNode.getNodeType() == Node.ELEMENT_NODE) { System.out.println("*************the "+(i+1)+"th node*************"); System.out.println("EMPLOYEEID="+getElementValue(empNode,"EMPLOYEEID")); System.out.println("EMPLOYEENUM="+getElementValue(empNode,"EMPLOYEENUM")); System.out.println("EMPLOYEENAME="+getElementValue(empNode,"EMPLOYEENAME")); System.out.println("EMPLOYEETYPE="+getElementValue(empNode,"EMPLOYEETYPE")); System.out.println("COUNTRY="+getElementValue(empNode,"COUNTRY")); System.out.println("ADDRESS="+getElementValue(empNode,"ADDRESS")); System.out.println("DESCRIPTION="+getElementValue(empNode,"DESCRIPTION")); } } }catch (Exception ex) { ex.printStackTrace(); } } //获取节点的值 private String getElementValue(Node node, String xmlType) { String result = null; if(node.getNodeType() == Node.ELEMENT_NODE){ Element firstPersonElement = (Element) node; NodeList firstNameList = firstPersonElement.getElementsByTagName(xmlType); Element firstNameElement = (Element) firstNameList.item(0); if (firstNameElement == null) { result= ""; } NodeList textFNList = firstNameElement.getChildNodes(); if (textFNList.item(0) == null) { result = ""; } if (((Node)textFNList.item(0)).getNodeValue() == null) { result = ""; } else { result = ((Node)textFNList.item(0)).getNodeValue().trim(); } } return result; } //主程序 public static void main(String[] args){ System.out.println("gavin main"); String xmlType = "EMPLOYEE"; importEmployeeXML importEmployeeXML = new importEmployeeXML(); importEmployeeXML.importEmployeeXML(xmlType); } }

 

三、运行测试


1. 运行测试

 

2. 创建XML测试数据文件

 

3. 通过system.out.println输出的XML信息数据,读取顺利成功,可以通过其他方法更新到VO或者Database中


Thanks and Regards


ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
117 2
|
26天前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
122 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
23天前
|
Serverless 对象存储 人工智能
智能文件解析:体验阿里云多模态信息提取解决方案
在当今数据驱动的时代,信息的获取和处理效率直接影响着企业决策的速度和质量。然而,面对日益多样化的文件格式(文本、图像、音频、视频),传统的处理方法显然已经无法满足需求。
75 4
智能文件解析:体验阿里云多模态信息提取解决方案
|
2月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
59 3
|
2月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
43 2
|
2月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
260 8
|
2月前
|
存储
文件太大不能拷贝到U盘怎么办?实用解决方案全解析
当我们试图将一个大文件拷贝到U盘时,却突然跳出提示“对于目标文件系统目标文件过大”。这种情况让人感到迷茫,尤其是在急需备份或传输数据的时候。那么,文件太大为什么会无法拷贝到U盘?又该如何解决?本文将详细分析这背后的原因,并提供几个实用的方法,帮助你顺利将文件传输到U盘。
|
3月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
104 1
|
5月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
3月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
40 3

推荐镜像

更多