xml转换成map
来源:互联网 发布:芒果tv有mac版吗 编辑:程序博客网 时间:2024/05/19 23:15
package com;
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;
public class TestreadLoadxml {
/**
* 解析字符串中 xml 文件
*/
public static void main(String[] args) throws Exception, IOException {
String returnxml =
"<root>"
+ "<head><version>1.0</version>"
+ "<tran_code>BEAI0077</tran_code>"
+ "<branch_no>9901</branch_no>"
+ "<teller_id>M1111</teller_id>"
+ "<channel_id>CRM</channel_id><sys_id>f00</sys_id>"
+ "<req_sys_id>f00</req_sys_id>"
+ "<send_date>20150821</send_date>"
+ "<send_time>155740</send_time>"
+ "<msg_seq>2015082115574002464343</msg_seq>"
+ "<org_msg_seq>2015082018060000000002</org_msg_seq>"
+ "</head>"
+ "<body><error_code>00000000</error_code>"
+ "<error_text/><pckgsq/><err_sys_id/>"
+ "<bgnRecordNum>0</bgnRecordNum>"
+ "<endRecordNum>2</endRecordNum><inqrngCnt>0</inqrngCnt>"
+ "<retCnt>2</retCnt><ttlCnt>2</ttlCnt><list_count>2</list_count>"
+ "<listEntity>"
+ "<Entity>"
+ "<custno>0009146105</custno>"
+ "<acctno>000914610500037</acctno><acctna>海霞</acctna>"
+ "<onlnbl>50000.00</onlnbl><acctst>1</acctst>"
+ "<dtittp>SV02</dtittp><dtitcd>215105</dtitcd>"
+ "<crcycd>10</crcycd><blncdn>C</blncdn>"
+ "</Entity>"
+ "<Entity>"
+ "<custno>0009146105</custno>"
+ "<acctno>000914610500045</acctno><acctna>海霞</acctna>"
+ "<onlnbl>50000.00</onlnbl><acctst>1</acctst>"
+ "<dtittp>SV02</dtittp><dtitcd>215105</dtitcd>"
+ "<crcycd>10</crcycd><blncdn>C</blncdn>"
+ "</Entity>"
+ "</listEntity>"
+ "</body>"
+ "</root>";
getXMLQMap(returnxml);
System.out.println("解析出来的头值" + rmap);
System.out.println("解析出来的体值" + mapp);
System.out.println("解析出来的客户list值" + listmap);
//转换成字符长度
String str = "张三";
String s = count(str);
System.out.println(s);
}
// 得到前置返回的xml
public static void getXMLQMap(String retMessage) {
Map<String, String> map = new HashMap<String, String>();
// 得到根节点
Element rootElement = getDocument(retMessage).getRootElement();
retQData(rootElement.getChildren(), map);
}
/**
* 递归解析获取返回XML数据
* <root>的子节点:<head>和<body>
*/
static Map<String, String> rmap = new HashMap<String, String>();// 存放头信息
static Map<String, String> mapp = null;
static List<Map<String, String>> listmap = new ArrayList<Map<String, String>>();
public static void retQData(List<Element> e, Map<String, String> map) {
// 做判断得到几个值
if (e.size() > 0 && e.get(0).getChildren().size() > 0) {
for (Element _e : e) {
retQData(_e.getChildren(), map);
}
} else {
for (Element _e : e) {
if (_e.getName().equals("listEntity")) {
retQData(_e.getChildren(), map);
} else {
if (_e.getName().equals("custno")) {
mapp = new HashMap<String, String>();// 存放客户体信息
for (Element _e1 : e) {
mapp.put(_e1.getName(), _e1.getText());
System.out.println(_e1.getName() + "<-->"+ _e1.getText());
if (_e1.getName().equals("blncdn")) {
break;
}
}
// 存放客户信息
listmap.add(mapp);
} else {
if (!(_e.getName().equals("custno"))|| !(_e.getName().equals("onlnbl"))|| !(_e.getName().equals("acctst"))|| !(_e.getName().equals("dtittp"))
|| !(_e.getName().equals("dtitcd"))||!(_e.getName().equals("crcycd"))|| !(_e.getName().equals("blncdn"))) {
rmap.put(_e.getName(), _e.getText());
System.out.println(_e.getName() + "<----->" + _e.getText());
}
}
}
}
}
}
// 得到document 把字符串 转换(解析)成 jdom 文档格式
public static org.jdom.Document getDocument(String retMessage) {
SAXBuilder builder = new SAXBuilder();
org.jdom.Document document = null;
StringReader sr = new StringReader(retMessage);
InputSource is = new InputSource(sr);
try {
document = builder.build(is);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return document;
}
public static String trim(String str) {
if (str == null)
return null;
return str.trim();
}
public static String count(String str) {
String bacStr = "";
if (str == null || str.length() == 0) {
return "00000000";
}
int count = 0;
char[] chs = str.toCharArray();
for (int i = 0; i < chs.length; i++) {
count += (chs[i] > 0xff) ? 2 : 1;
}
if ((count + "").length() < 8) {
int len = 8 - (count + "").length();
for (int i = 0; i < len; i++) {
bacStr = bacStr.concat("0");
}
}
System.out.println("拼接字符串:" + bacStr + count);
return bacStr + count;
}
}
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;
public class TestreadLoadxml {
/**
* 解析字符串中 xml 文件
*/
public static void main(String[] args) throws Exception, IOException {
String returnxml =
"<root>"
+ "<head><version>1.0</version>"
+ "<tran_code>BEAI0077</tran_code>"
+ "<branch_no>9901</branch_no>"
+ "<teller_id>M1111</teller_id>"
+ "<channel_id>CRM</channel_id><sys_id>f00</sys_id>"
+ "<req_sys_id>f00</req_sys_id>"
+ "<send_date>20150821</send_date>"
+ "<send_time>155740</send_time>"
+ "<msg_seq>2015082115574002464343</msg_seq>"
+ "<org_msg_seq>2015082018060000000002</org_msg_seq>"
+ "</head>"
+ "<body><error_code>00000000</error_code>"
+ "<error_text/><pckgsq/><err_sys_id/>"
+ "<bgnRecordNum>0</bgnRecordNum>"
+ "<endRecordNum>2</endRecordNum><inqrngCnt>0</inqrngCnt>"
+ "<retCnt>2</retCnt><ttlCnt>2</ttlCnt><list_count>2</list_count>"
+ "<listEntity>"
+ "<Entity>"
+ "<custno>0009146105</custno>"
+ "<acctno>000914610500037</acctno><acctna>海霞</acctna>"
+ "<onlnbl>50000.00</onlnbl><acctst>1</acctst>"
+ "<dtittp>SV02</dtittp><dtitcd>215105</dtitcd>"
+ "<crcycd>10</crcycd><blncdn>C</blncdn>"
+ "</Entity>"
+ "<Entity>"
+ "<custno>0009146105</custno>"
+ "<acctno>000914610500045</acctno><acctna>海霞</acctna>"
+ "<onlnbl>50000.00</onlnbl><acctst>1</acctst>"
+ "<dtittp>SV02</dtittp><dtitcd>215105</dtitcd>"
+ "<crcycd>10</crcycd><blncdn>C</blncdn>"
+ "</Entity>"
+ "</listEntity>"
+ "</body>"
+ "</root>";
getXMLQMap(returnxml);
System.out.println("解析出来的头值" + rmap);
System.out.println("解析出来的体值" + mapp);
System.out.println("解析出来的客户list值" + listmap);
//转换成字符长度
String str = "张三";
String s = count(str);
System.out.println(s);
}
// 得到前置返回的xml
public static void getXMLQMap(String retMessage) {
Map<String, String> map = new HashMap<String, String>();
// 得到根节点
Element rootElement = getDocument(retMessage).getRootElement();
retQData(rootElement.getChildren(), map);
}
/**
* 递归解析获取返回XML数据
* <root>的子节点:<head>和<body>
*/
static Map<String, String> rmap = new HashMap<String, String>();// 存放头信息
static Map<String, String> mapp = null;
static List<Map<String, String>> listmap = new ArrayList<Map<String, String>>();
public static void retQData(List<Element> e, Map<String, String> map) {
// 做判断得到几个值
if (e.size() > 0 && e.get(0).getChildren().size() > 0) {
for (Element _e : e) {
retQData(_e.getChildren(), map);
}
} else {
for (Element _e : e) {
if (_e.getName().equals("listEntity")) {
retQData(_e.getChildren(), map);
} else {
if (_e.getName().equals("custno")) {
mapp = new HashMap<String, String>();// 存放客户体信息
for (Element _e1 : e) {
mapp.put(_e1.getName(), _e1.getText());
System.out.println(_e1.getName() + "<-->"+ _e1.getText());
if (_e1.getName().equals("blncdn")) {
break;
}
}
// 存放客户信息
listmap.add(mapp);
} else {
if (!(_e.getName().equals("custno"))|| !(_e.getName().equals("onlnbl"))|| !(_e.getName().equals("acctst"))|| !(_e.getName().equals("dtittp"))
|| !(_e.getName().equals("dtitcd"))||!(_e.getName().equals("crcycd"))|| !(_e.getName().equals("blncdn"))) {
rmap.put(_e.getName(), _e.getText());
System.out.println(_e.getName() + "<----->" + _e.getText());
}
}
}
}
}
}
// 得到document 把字符串 转换(解析)成 jdom 文档格式
public static org.jdom.Document getDocument(String retMessage) {
SAXBuilder builder = new SAXBuilder();
org.jdom.Document document = null;
StringReader sr = new StringReader(retMessage);
InputSource is = new InputSource(sr);
try {
document = builder.build(is);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return document;
}
public static String trim(String str) {
if (str == null)
return null;
return str.trim();
}
public static String count(String str) {
String bacStr = "";
if (str == null || str.length() == 0) {
return "00000000";
}
int count = 0;
char[] chs = str.toCharArray();
for (int i = 0; i < chs.length; i++) {
count += (chs[i] > 0xff) ? 2 : 1;
}
if ((count + "").length() < 8) {
int len = 8 - (count + "").length();
for (int i = 0; i < len; i++) {
bacStr = bacStr.concat("0");
}
}
System.out.println("拼接字符串:" + bacStr + count);
return bacStr + count;
}
}
0 0
- xml转换成map
- 把xml转换成map
- 把xml转换成map
- map对象转换成xml
- java将XML数据转换成Map
- XML转换为Map
- 解析xml 转换map
- 将xml字符串转换成map,list 的转换
- Map与XML的转换
- XML json map list转换
- XML和Map相互转换
- Dom4j把xml转换成Map(非固定格式)
- Android 微信支付返回xml转换成map格式
- XML格式字符串转换成Map,包括List
- java转换xml、list、map和json
- Java转换xml、list、map和json
- XML数据转换为Map工具类
- JSON ,map,list.xml相互转换
- Linux 常用C函数说明-内存及字符串操作篇
- Xcode 自定义 Eclipse 中常用的快捷键
- redis-jedis--spring-哨兵 3
- 【Android进阶】Android 平滑图片加载和缓存库 Glide 使用详解
- 点赞 数据库设计
- xml转换成map
- D进制的A+B
- Framework开发指南 四
- Streaming (串流处理)
- jboss-eap-6 数据库用户加密访问
- POI和jxl写入效率
- 机器学习值决策树算法(下)-ID3实现
- 暗网探索 (要是有人看到我的博客 请随便留点什么 给我点每天都写博客的动力 谢谢)
- Android中getLocationOnScreen和getLocationInWindow