原生java读取存储为xml格式的数据,并存储到java bean里
一、举例读取的文件为: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里的更多相关文章
- 关于java后台如何接收xml格式的数据
		业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户. 请求格式: <request> <head> <sign></sig ... 
- 用Ajax去读取服务器端的XML格式的数据
		<html> <head></head> <script type="text/javascript"> /*---定义一个全局变量 ... 
- Java读取CSV和XML文件方法
		游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ... 
- C#操作数据表中XML格式的数据
		以前还真没有见过数据表中存储XML格式的数据,刚开始听说的时候,还以为是数据表中有XML的字段类型, 再了解,其实也就是字符串类型的,只不过字符串的格式是XML格式的.确实孤陋寡闻!汗... (可添加 ... 
- xml格式的数据转化成数组
		将得到的xml格式的数据转化成数组 <?php //构造xml $url = "http://api.map.baidu.com/telematics/v3/weather?locat ... 
- 如何在JSP页面里面显示xml格式的数据
		正常情况下,在jsp页面里的标签里写xml格式的数据,在浏览器里面的页面里显示出来的是乱码. 为什么会显示乱码呢?原来xml标签在jsp里会被解析为浏览器对象,因为xml最开始被设计出来是 为了写网页 ... 
- scrapy 解析xml格式的数据
		XMLFeedSpider 主要用于 解析 xml格式的数据 创建一个scrapy 项目文件 scrapy startproject xxx 创建一个spider scrapy genspider - ... 
- JAVA 读取xml格式的数据
		<?xml version="1.0" encoding="UTF-8"?> <column-enums> <type name= ... 
- Java读取、创建xml(通过dom方式)
		创建一个接口 XmlInterface.java public interface XmlInterface { /** * 建立XML文档 * @ ... 
随机推荐
- HTML背景图片自适应
			由于<body>标签的图片不能够拉伸, 解决办法: 1.图片不够大,又background属性不能拉伸图片: 2.只能用个div,把其z-index值设为负,并使这个div大小为整个bod ... 
- 类实例化对象可以访问静态(static)方法,但是不能访问静态属性。
			类-> 访问->静态方法(类的方法)->可以 类 ->访问->普通方法(对象的方法)->不可以(虽然方法里不用$this关键字时,可以!但不支持这种写法) 类-&g ... 
- centos7 firewall-cmd 用活firewalld防火墙中的zone
			原文:http://www.excelib.com/article/290/show/ firewalld中zone的含义学生前面已经给大家介绍过了,说白了一个zone就是一套规则集.可是什么时候该用 ... 
- idea 配置全局 maven
			Idea默认的全局设置,如Maven等 每次使用IDEA打开一个新的项目,maven都需要重新配置,非常不开心,所以需要有个默认全局配置,打破不开心 配置完就OK了 原文链接:https://www. ... 
- document.createRange剪贴板API
			js实现复制到剪贴板 document.createRange() API 选中元素→range→selection是一一对应的,即选区必须连续,不可以有分开的多个区域.另外,被选元素必须在dom树上 ... 
- 0000 - Spring 中常用注解原理剖析
			1.概述 Spring 框架核心组件之一是 IOC,IOC 则管理 Bean 的创建和 Bean 之间的依赖注入,对于 Bean 的创建可以通过在 XML 里面使用 <bean/> 标签来 ... 
- NameNode配置HA后及其反过程Hive路径不正确的问题解决
			在CDH5.7下,配置了NameNode的HA后,Hive无正常查询数据了,但是其他的组件HDFS , HBase ,Spark都正常的.Hive新建表出现如下异常: CREATE TABLE `x_ ... 
- HADOOP+SPARK+ZOOKEEPER+HBASE+HIVE集群搭建(转)
			原文地址:https://www.cnblogs.com/hanzhi/articles/8794984.html 目录 引言 目录 一环境选择 1集群机器安装图 2配置说明 3下载地址 二集群的相关 ... 
- C#窗体嵌入SetParent的用法
			模块化的开发,将模块合并到一起的时候,遇到了Mdi不能添加到其它窗口下的问题. 分两种情况: 将mdi窗口A设成普通窗口B的子控件,需要将A的TopLevel设置成false,但是Mdi窗口的TopL ... 
- js数组冒泡
			var arr 1= [1, 2, 3, 4, 5]; 最简单的 每组数字之间用逗号隔开 第一个数的索引值为0.数字为1 以此类推 中括号的内容是存var arr2 = Array(1, 2, 3); ... 
