一、举例读取的文件为: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. NodeJs针对Express框架配置Mysql进行数据库操作

    Express版本:4.14.1 说明:如下配置以express为例进行配置并进行测试,当然mysql中间件也可以在nodejs中单独使用. 参考:NodeJs的Mysql中间件Github地址 1. ...

  2. 第一次软件工程作业——html制作一份简单的个人简历

    源码链接(码云):https://gitee.com/yongliuli/codes/eavjr7lxotb85s0icnq1z68 简历效果图展示: 代码展示: 添加背景音乐的方法: 在<he ...

  3. 安装MySQL_Python时出现is not a supported wheel on this platform.

    MySQL-Python 数据库驱动安装 pip install mysql_python失败 不支持windows操作系统 解决: 自行下载安装 下载网站 http://www.lfd.uci.ed ...

  4. Jsp九大内置对象和4大作用域

    一.在java开发中,jsp提供了9个内置的对象,这些内置对象将由容器为用户进行实例化,用户直接使用. 这9个内置对象分别为:pageContext,request,response,session, ...

  5. C#多线程学习笔记之(abort与join配合使用)

    今天刚开始学多线程,尽管以前用过一点点,但是只是照着网上代码抄,没有真正理解,现在回过头来想研究研究,慢慢弄懂,下面就是我在网上所找资料的例子,相信大家都看过,做了小点改动 View Code nam ...

  6. Linux 双网卡配置两个IP同时只有一个会通的原因

    http://blog.csdn.net/centerpoint/article/details/38542719 根本原因: Linux默认启用了反向路由检查 如果2个网卡在一个Lan里面,那么服务 ...

  7. 文件IO-Linux

    pcb:结构体 一个进程由一个文件描述符表:1024,前三个占用,文件描述符作用,需要磁盘文件. 1:open.close int open(const char* pathname,int flag ...

  8. Android MVP案例;

    就一个十分简单的获取列表数据并展示的Demo:分别使用MVC和MVP实现: 先来一个假的数据源: //假设这就是数据源 public class UserBean { public static Li ...

  9. Django实现瀑布流,组合搜索

    Django中组合搜索功能 需求分析 很多电商网站中有组合搜索的功能,所谓组合搜索就是网页中组合多个条件,对数据库中进行查询,并且将结果显示在页面中,看个例子吧: 注意红框中的标识,我们可以根据URL ...

  10. CentOS、Ubuntu、Debian简析

    Centos .Ubuntu.Debian 三个Linux都是非常优秀的系统,开源的系统,也分付费的商业版和免费版,下面简单比较这三种系统. Centos系统 非常多的商业公司部署在生产环境上的服务器 ...