一、举例读取的文件为:test.xml

<?xml version="1.0" encoding="UTF-8"?>

<IMIXML>
<SecDef Desc="国债" CentraQuoteBondIndic="Y">
<Instrmt ID="CFT" Sym="现券买卖"/>
</SecDef>
<SecDef Desc="债券" CentraQuoteBondIndic="X">
<Instrmt ID="CCC" Sym="是否"/>
</SecDef>
</IMIXML>

二 项目结构:

三 代码:

package parseXml;

import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.helpers.DefaultHandler; import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import java.util.HashMap; public class Test extends DefaultHandler {
public static SAXParserFactory parserFactory;
public static SAXParser parser;
public static HashMap<String, SecDef> map = new HashMap<String, SecDef>();
String xBondTransactableBondInformation_Id; // 债券代码
SecDef secdef;
Instrmt instrmt; @Override
public void startDocument() { } // 读取XML的<后开始执行
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) {
if ("SecDef".equals(qName)) {
secdef = new SecDef();
instrmt = new Instrmt();
secdef.setCentraQuoteBondIndic(attributes
.getValue("CentraQuoteBondIndic"));
secdef.setDesc(attributes.getValue("Desc"));
secdef.setInstrmt(instrmt);
}
if ("Instrmt".equals(qName)) {
xBondTransactableBondInformation_Id = attributes.getValue("ID");
instrmt.setId(attributes.getValue("ID"));
instrmt.setSym(attributes.getValue("Sym"));
} } @Override
public void characters(char[] ch, int start, int length) {
} // 读取XML的</后开始执行
@Override
public void endElement(String uri, String localName, String qName) {
map.put(
xBondTransactableBondInformation_Id, secdef);
} @Override
public void endDocument() { } /**
* 解析方法
*
* @return map
*/
public static HashMap<String, SecDef> loadXML(String filePath) {
try {
parserFactory = SAXParserFactory.newInstance();
parser = parserFactory.newSAXParser();
Test reader = new Test();
parser.parse(new InputSource(filePath), reader);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return map;
} public static HashMap<String, SecDef> resultMap; public static void main(String[] args) {
resultMap = loadXML("src/input/xml/test.xml"); for (String key : resultMap.keySet()) {
System.out.print("key=" + key + "\t");
System.out.println("value="
+ resultMap.get(key));
}
} }

Test.java

package parseXml;

public class SecDef {
private String desc;//
private String CentraQuoteBondIndic;
private Instrmt instrmt; public SecDef() { } public String getDesc() {
return desc;
} public void setDesc(String desc) {
this.desc = desc;
} public String getCentraQuoteBondIndic() {
return CentraQuoteBondIndic;
} public void setCentraQuoteBondIndic(String centraQuoteBondIndic) {
CentraQuoteBondIndic = centraQuoteBondIndic;
} public Instrmt getInstrmt() {
return instrmt;
} public void setInstrmt(Instrmt instrmt) {
this.instrmt = instrmt;
} @Override
public String toString() {
return "SecDef{" +
"desc='" + desc + '\'' +
", CentraQuoteBondIndic='" + CentraQuoteBondIndic + '\'' +
", instrmt=" + instrmt +
'}';
}
}

SecDef.java

package parseXml;

public class Instrmt {
private String id;
private String sym; public Instrmt() { } public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getSym() {
return sym;
} public void setSym(String sym) {
this.sym = sym;
} @Override
public String toString() {
return "Instrmt{" +
"id='" + id + '\'' +
", sym='" + sym + '\'' +
'}';
}
}

Instrmt.java

四 结果:

原生java读取存储为xml格式的数据,并存储到java bean里的更多相关文章

  1. 关于java后台如何接收xml格式的数据

    业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户. 请求格式: <request> <head> <sign></sig ...

  2. 用Ajax去读取服务器端的XML格式的数据

    <html> <head></head> <script type="text/javascript"> /*---定义一个全局变量 ...

  3. Java读取CSV和XML文件方法

    游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ...

  4. C#操作数据表中XML格式的数据

    以前还真没有见过数据表中存储XML格式的数据,刚开始听说的时候,还以为是数据表中有XML的字段类型, 再了解,其实也就是字符串类型的,只不过字符串的格式是XML格式的.确实孤陋寡闻!汗... (可添加 ...

  5. xml格式的数据转化成数组

    将得到的xml格式的数据转化成数组 <?php //构造xml $url = "http://api.map.baidu.com/telematics/v3/weather?locat ...

  6. 如何在JSP页面里面显示xml格式的数据

    正常情况下,在jsp页面里的标签里写xml格式的数据,在浏览器里面的页面里显示出来的是乱码. 为什么会显示乱码呢?原来xml标签在jsp里会被解析为浏览器对象,因为xml最开始被设计出来是 为了写网页 ...

  7. scrapy 解析xml格式的数据

    XMLFeedSpider 主要用于 解析 xml格式的数据 创建一个scrapy 项目文件 scrapy startproject xxx 创建一个spider scrapy genspider - ...

  8. JAVA 读取xml格式的数据

    <?xml version="1.0" encoding="UTF-8"?> <column-enums> <type name= ...

  9. Java读取、创建xml(通过dom方式)

    创建一个接口 XmlInterface.java public interface XmlInterface {           /**         * 建立XML文档         * @ ...

随机推荐

  1. 学习笔记之人工智能(Artificial Intelligence)

    人工智能 - 维基百科,自由的百科全书 https://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD 人工智能(英语:Artif ...

  2. convert 批量文件的格式转换

    1.将 a.gif 转为 png 格式 convert a.gif a.png 请注意,convert 命令的基本格式为 convert 源文件 [参数] 目标文件 在上面的命令中,源文件是 a.gi ...

  3. UE4 Socket多线程非阻塞通信

    转自:https://blog.csdn.net/lunweiwangxi3/article/details/50468593 ue4自带的Fsocket用起来依旧不是那么的顺手,感觉超出了我的理解范 ...

  4. Linux下安装python3及相关包

    Python3: sudo apt-get install python3 终端中输入python则进入python2,输入python3则进入python3 安装python2的相关包: sudo ...

  5. plugin 看不到update按钮

    然后再按一下tab键,焦点就会在 update上了.然后再回车.

  6. EditPlus 3安装的配置操作

    1.关闭自动保存备份设置 将保存时创建备份文件的钩去掉即可 2.设置字体样式  3.配置编译和运行 运行相当于在控制台执行命令: java -classpath classes Hello 4.设置快 ...

  7. Hibernate QBC

    QBC查询: Query By Criteria 使用面向对象的方式查询 和HQL单表查询相似,但不包含别名查询和具名查询   1 全表查询 Criteria ce = session.createC ...

  8. centos 7 安装sqoop 1.4.7

    1. 下载sqoop1.4.7 cd /home/workspace wget https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/sqoo ...

  9. selenuim和phantonJs处理网页动态加载数据的爬取

    一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python # -*- coding:utf-8 -* ...

  10. react学习笔记(一)

    React的介绍: React来自于Facebook公司的开源项目 React 可以开发单页面应用 spa(单页面应用) react 组件化模块化 开发模式 React通过对DOM的模拟(虚拟dom) ...