搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
酷酷是懒虫
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Java自动化测试框架-05 - 来给你的测试报告化个妆整个形 - (上)(详细教程)
2
【免费】最新区块链钱包和私钥的助记词碰撞器,bybit使用python开发
3
GAT源码分析——从DEBUG走起_gat代码
4
校园一卡通的快速破解
5
HPM6750EVK2使用jlink调试debug
6
为什么共享单车泊车点可以识别得如此精准?_共享电单车 桩位识别原理
7
ABAP性能优化总结_abap 优化
8
Android 中的权限_android 权限3
9
相似、合同、等价_合同,相似等价
10
面试了一个32岁的程序员,一个细节就看出来是培训班的····_面试java 一听就是培训机构的项目
当前位置:
article
> 正文
XML数据解析(循环遍历解析)_怎么解析xml中的循环体
作者:酷酷是懒虫 | 2024-08-11 20:52:13
赞
踩
怎么解析xml中的循环体
package
com.cdhy.hjzx.util;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.sf.json.JSONObject;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
/**
* 解析类
*
* @author Administrator
*
*/
public class SaxXML {
/**测试**/
// 解析开票成功后返回的xml字符串
/**
* <?xml version="1.0" encoding="UTF-8" standalone="no"?>
* <body><result>成功</result><djh>KP150817000066</djh><fplxdm>004</fplxdm>
* <kpzt>正常发票</kpzt><fpdm>1110098076</fpdm><fphm>65341107</fphm></body>
*/
/**
* <?xml version="1.0" encoding="gb2312" ?>
<result generated="1216266428640" vo_id="getOperStatus">
<result><operStatus>
<ch>0</ch><inUseC>0</inUseC><statusC>0</statusC><phone>_NA_</phone><ifLoginC>1</ifLoginC><oper>801</oper><setBusyC>false</setBusyC>
</operStatus>
</result>
* @param ss
* @return
*/
public static Map<String, String> parseResultXml(String ss) {
Document doc = null;
Map<String, String> map = new HashMap<String, String>();
try {
doc = DocumentHelper.parseText(ss); // 将字符串转为XML
Element employees = doc.getRootElement();// 根节点
for (Iterator i = employees.elementIterator(); i.hasNext();) {// 遍历下一节点
Element employee = (Element) i.next();
map.put(employee.getName(), employee.getText());
}
} catch (DocumentException e) {
e.printStackTrace();
}
return map;
}
/*循环解析XML将数据以json对象的形式返回*/
public static JSONObject parseResultXml2(String ss){
Document doc = null;
JSONObject jsob=new JSONObject();
try{
doc = DocumentHelper.parseText(ss);
/*1,得到XML字符串根节点*/
Element empRoot =doc.getRootElement();
/*根节点内容*/
jsob.put("rootVal", empRoot.getTextTrim());
/*如果根节点有属性*/
if(empRoot.attributeCount()>0){
/*获取根节点属性名属性值 属性名(key) 属性值(value)*/
for(int i=0;i<empRoot.attributeCount();i++){
/*获取根节点的属性名称和属性值*/
jsob.put(empRoot.attribute(i).getName(),empRoot.attribute(i).getStringValue());
}
}
/*遍历根节点获取子节点对象*/
for(Iterator root=empRoot.elementIterator();root.hasNext();){
/*通过根节点遍历子节点*/
Element emp1 = (Element)root.next();
/*遍历一次字节点则取字节点相应的值 KEY 节点名称 VALUE 节点值保存到JSON中*/
jsob.put(emp1.getName(), emp1.getText());
/*遍历第二层中子节点*/
for(Iterator emp1s=emp1.elementIterator();emp1s.hasNext();){
/*遍历子节点内容*/
Element employee = (Element) emp1s.next();
/*节点名称和节点内容以KEY VALUE的方式保存到JSON对象*/
jsob.put(employee.getName(), employee.getText());
}
}
}
catch(DocumentException e)
{
e.printStackTrace();
}
System.out.println(jsob);
return jsob;
}
//employees.attribute(0).getValue()
public static void main(String[] args) {
String xml="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"+
"<body><result>成功</result><djh>KP150817000066</djh><fplxdm>004</fplxdm>"+
"<kpzt>正常发票</kpzt><fpdm>1110098076</fpdm><fphm>65341107</fphm></body>";
String xml1="<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
"<result generated=\"1216266428640\" vo_id=\"getOperStatus\">"+"成功"+"</result>";
String xml2="<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
"<result generated=\"1216266428640\" vo_id=\"getOperStatus\"><operStatus>"+
"<ch>0</ch><inUseC>0</inUseC><statusC>0</statusC><phone>_NA_</phone><ifLoginC>1</ifLoginC><oper>801</oper><setBusyC>false</setBusyC>"+
"</operStatus></result>";
System.out.println(parseResultXml2(xml2).toString());
System.err.println(parseResultXml(xml).toString());
}
}
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/966044
推荐阅读
article
大语言
模型
LLM
分布式
训练
:
TensorFlow
攻略与深度解析(
LLM
系列04)_tensorflo...
本文深入探讨
TensorFlow
下大语言
模型
(
LLM
)的
分布式
训练
,介绍数据并行、
模型
并行和流水线并行等模式,讨论同步与...
赞
踩
article
骨龄预测系列
---
番外篇
...
索引前言一、DataGenerator是什么?二、使用步骤总结前言在跑这个系列的代码的时候,发现数据太大了,9G呢~~~...
赞
踩
article
【
C++
】
类
和
对象
(一)...
以class为定义
类
的关键字,Data为
类
的名字,{}中为
类
的主体。需要注意的是:
类
定义结束时后面的分号不能省略。
类
中的...
赞
踩
article
Latex
之
table
_latex
table
...
\documentclass{article} \usepackage{CJK}\begin{document}\beg...
赞
踩
article
makefile
文件
的
语法
规则
和配置...
0.1 关于程序的编译和链接 在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要...
赞
踩
article
GalaxyWaferMapEdit
使用说明_
wafermap
软件
...
GalaxyWaferMapEdit
是一款用于编辑map文件的工具,适用于Windows平台。本文档介绍了从安装到使用的...
赞
踩
article
DGCNN
:深度
图
卷积
网络
,重新定义
图
数据处理
...
DGCNN
是一种深度学习框架,专为
图
数据设计,通过动态
图
卷积
和得分函数排序池提高模型对局部结构的理解。它在点云处理及多个...
赞
踩
article
STC
-
ISP
烧录过程中显示“正
在
检测
目标
单片机
...”问题的
解决办法
_
stcisp
一直
在
检测
目标单...
STC
-
ISP
能够正常烧录程序至关重要!_
stcisp
一直
在
检测
目标
单片机
stcisp
一直
在
检测
目标
单片机
...
赞
踩
article
Django
网络空间
微博
管理信息系统
毕业设计
-附源码 85633...
网络空间
微博
管理信息系统
的主要使用者分为管理员、系统用户,实现功能包括首页(系统用户统计,舆论微博统计),网站管理(轮播...
赞
踩
article
并发
编程
尚硅谷笔记...
并发
编程
网课链接 https://www.bilibili.com/video/BV1Kw411Z7dF?from=se...
赞
踩
article
git
操作命令大全_
git
常用命令
...
git
reflog 通常被引用为 安全网,当
git
log 没有想要的信息时可以尝试用
git
reflog。
git
...
赞
踩
article
Java
随机数
-
获取
0
到
9
内的
随机数
_
java
0
-
9
随机数
...
本文参考 嗨客网
Java
实战
Java
随机数
描述运用
Java
的 Random 得到
随机数
。题目
获取
0
到
9
内...
赞
踩
article
SpringCloud
Alibaba
商城项目实践_
spring
cloud
alibaba
成熟项目...
为什么采取
SpringCloud
Alibaba
,处于以下几方面考虑,首先是因为
SpringCloud
中的一些组件已经宣...
赞
踩
article
如何用
modelsim
仿真
包含
quartus
IP
核
的工程_
quartus
pci
ip
核
仿真
...
本文介绍了如何解决在
modelsim
中
仿真
含有
quartus
IP
核
工程时遇到的问题。首先,需要将altera的所有IP...
赞
踩
article
补丁
工具
Quilt
与Git_
quilt
git
...
quilt
git
patch
补丁
工具Linux 内核_
quilt
git
quilt
git
...
赞
踩
article
基于Vue 2.x版本
Element
中
Table
表格
背景色
、
表头
等样式自定义_
element
ta...
Element
中
Table
表格
背景色
_
element
table
表头
颜色
element
table
表头
颜色
...
赞
踩
article
蓝易云 - 描述
Ubuntu
系统
通过
overlay
机制实现
的
重启
后
系统
恢复
的
方法。...
重启
时,只需要重置或丢弃可写层,
系统
即可回到原始状态。它提供了一种简单可靠
的
方式来确保
系统
的
一致性和安全性,毕竟所有
的
更...
赞
踩
article
JUC
并发编程与
源码
分析(
1
)_熟悉
juc
,
了解
源码
有
实际经验...
JUC
并发编程与
源码
分析
JUC
四大口诀为什么多线程极其重要?一、线程基础知识
1
.
1
线程的start方法
1
.2 线程相关...
赞
踩
article
模型
部署
到
移动
端_
模型
压缩+
编译器
优化,使
AI
算法在
移动
端性能超越
专用
硬件
......
本文探讨如何通过
模型
压缩和
编译器
优化技术,实现
AI
算法在
移动
端的高效运行,使其性能超越
专用
硬件
。内容涵盖
模型
压缩、网络简...
赞
踩
article
创建
一个
简单
的
线性表
_建立
一个
线性表
...
来
一个
最简单
的
单链表来举例吧
创建
链表就得有链表节点。节点里面包含节点数据即值域,另外还有指针域,这里就得定义
一个
结构体。...
赞
踩
相关标签
分布式
tensorflow
人工智能
自然语言处理
深度学习
python
神经网络
c++
开发语言
windows
51单片机
嵌入式硬件
数据库
spring boot
后端
java
课程设计
java-ee
git