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

简介: 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 - 鲍新建
相关文章
|
1月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
165 0
|
8月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2121 1
|
6月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
172 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
11月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
2527 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
8月前
|
开发框架 .NET 中间件
.net8 使用 license 证书授权案例解析
本文介绍了如何使用 `.NET CLI` 创建并改造一个 `ASP.NET Core Web API` 项目,以实现基于许可证的授权机制。具体步骤包括创建项目、添加必要的 NuGet 包(如 `Standard.Licensing` 和 `Swashbuckle.AspNetCore`),以及修改 `Program.cs` 文件以集成自定义的许可证验证中间件。项目结构中新增了 `LicenseController` 接口用于处理授权相关操作,并通过测试流程验证了默认天气接口在未授权和授权状态下的响应情况。整个过程确保了应用程序能够在启动时正确验证许可证,保障系统的安全性与可控性。
422 8
.net8 使用 license 证书授权案例解析
|
8月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
286 15
|
8月前
|
机器学习/深度学习 人工智能 搜索推荐
技术革新下的培训新趋势:案例解析
从最初的“试试看”,到如今的“非做不可”,企业培训已经成为央国企和上市公司不可或缺的战略环节。无论是AI与大模型的赋能,DeepSeek,还是具身智能、智算技术和数据科学的实战应用,这些课程都在为企业打开新的可能性。
|
9月前
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
242 4
|
10月前
|
Serverless 对象存储 人工智能
智能文件解析:体验阿里云多模态信息提取解决方案
在当今数据驱动的时代,信息的获取和处理效率直接影响着企业决策的速度和质量。然而,面对日益多样化的文件格式(文本、图像、音频、视频),传统的处理方法显然已经无法满足需求。
409 4
智能文件解析:体验阿里云多模态信息提取解决方案
|
11月前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

推荐镜像

更多
  • DNS
  • 下一篇
    oss云网关配置