package com.guanqi.xml2json;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.dom4j.*;
import java.io.File;
import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.List;
public class TestXml2Json {
public static void main(String[] args) throws Exception {
String xmlStr= readFile("D:/ADA/et/Issue_20130506_back.xml");
Document doc= DocumentHelper.parseText(xmlStr);
JSONObject json=new JSONObject();
dom4j2Json(doc.getRootElement(),json);
System.out.println("xml2Json:"+json.toJSONString());
}
public static String readFile(String path) throws Exception {
File file=new File(path);
FileInputStream fis = new FileInputStream(file);
FileChannel fc = fis.getChannel();
ByteBuffer bb = ByteBuffer.allocate(new Long(file.length()).intValue());
//fc向buffer中读入数据
fc.read(bb);
bb.flip();
String str=new String(bb.array(),"UTF8");
fc.close();
fis.close();
return str;
}
/**
* xml转json
* @param xmlStr
* @return
* @throws DocumentException
*/
public static JSONObject xml2Json(String xmlStr) throws DocumentException{
Document doc= DocumentHelper.parseText(xmlStr);
JSONObject json=new JSONObject();
dom4j2Json(doc.getRootElement(), json);
return json;
}
/**
* xml转json
* @param element
* @param json
*/
public static void dom4j2Json(Element element,JSONObject json){
//如果是属性
for(Object o:element.attributes()){
Attribute attr=(Attribute)o;
if(!isEmpty(attr.getValue())){
json.put("@"+attr.getName(), attr.getValue());
}
}
List<Element> chdEl=element.elements();
if(chdEl.isEmpty()&&!isEmpty(element.getText())){//如果没有子元素,只有一个值
json.put(element.getName(), element.getText());
}
for(Element e:chdEl){//有子元素
if(!e.elements().isEmpty()){//子元素也有子元素
JSONObject chdjson=new JSONObject();
dom4j2Json(e,chdjson);
Object o=json.get(e.getName());
if(o!=null){
JSONArray jsona=null;
if(o instanceof JSONObject){//如果此元素已存在,则转为jsonArray
JSONObject jsono=(JSONObject)o;
json.remove(e.getName());
jsona=new JSONArray();
jsona.add(jsono);
jsona.add(chdjson);
}
if(o instanceof JSONArray){
jsona=(JSONArray)o;
jsona.add(chdjson);
}
json.put(e.getName(), jsona);
}else{
if(!chdjson.isEmpty()){
json.put(e.getName(), chdjson);
}
}
}else{//子元素没有子元素
for(Object o:element.attributes()){
Attribute attr=(Attribute)o;
if(!isEmpty(attr.getValue())){
json.put("@"+attr.getName(), attr.getValue());
}
}
if(!e.getText().isEmpty()){
json.put(e.getName(), e.getText());
}
}
}
}
public static boolean isEmpty(String str) {
if (str == null || str.trim().isEmpty() || "null".equals(str)) {
return true;
}
return false;
}
}
相关推荐
xml完美解析成json 亲测可用
一直苦恼xml转json,很多工具类支持,但是转换的效果都很差,一个偶然的时间,我找到这个资源,分享给大家,解析效果相当不错。 使用方法: //将xml转为json JSONObject xmlJSONObj = XML.toJSONObject(ret);
python实现Xml2json():将Xml文件加载并转化为json格式并保存的函数实现
python,xml,json
PyTorch版Unet训练后别只看loss:手把手教你计算并可视化多类别语义分割的mIoU(附完整代码)
本文详细介绍了在PyTorch中使用Unet模型进行多类别语义分割后,如何计算和可视化mIoU(mean Intersection over Union)以全面评估模型性能。通过完整的代码示例和实用技巧,帮助开发者从loss优化转向更精准的区域分割评估,特别适用于医学图像分析等关键场景。
【亲测免费】 XML2JSON - 将XML转换为JSON的轻量级工具
XML2JSON - 将XML转换为JSON的轻量级工具 在日常开发中,我们经常需要处理XML和JSON这两种数据格式。然而,它们之间的互操作并不总是那么顺畅。为了帮助开发者更加轻松地将XML转换成JSON,我们向您推荐这款叫做XML2JSON的开源项目。 项目简介 XML2JSON是一个轻量级、易于使用的工具,旨在将XML数据转换为JSON格式。它支持各种XML文档结构,并且可以自定义配置以满足...
别再为3D抓取发愁了!Halcon手眼标定保姆级教程(Eye-to-Hand模式,含完整代码)
本文提供Halcon手眼标定的保姆级教程,详细讲解Eye-to-Hand模式下的3D抓取实现方法。从硬件配置、坐标系系统到标定流程和核心算法,涵盖完整代码和实战经验,帮助用户快速掌握工业自动化中的精准抓取技术。
Keil C51开发必看:详解data/xdata/bdata内存分配陷阱与避坑指南
本文深入解析Keil C51开发中的data/xdata/bdata内存分配陷阱,提供针对51芯片的高效避坑指南。通过真实案例揭示Keil编译器的隐藏规则,分享内存优化策略和调试技巧,帮助开发者解决data溢出、xdata访问异常等典型问题,提升嵌入式开发效率。
将xml转成json c语言,JavaScript将XML转成JSON的方法
本文实例讲述了JavaScript将XML转成JSON的方法。分享给大家供大家参考。具体方法如下:1. JavaScript代码如下:// Changes XML to JSONfunction xmlToJson(xml) {// Create the return objectvar obj = {};if (xml.nodeType == 1) { // element// do attri...
手把手教你实现阿克曼ROS小车的运动控制
本文详细介绍了如何从零开始实现阿克曼ROS小车的运动控制。内容涵盖硬件搭建、STM32底层PID速度与舵机控制、ROS层阿克曼运动学模型解析,以及上下位机通信协议设计。通过手把手的代码示例和调试步骤,帮助机器人爱好者与开发者掌握将高级速度指令转化为小车具体动作的全流程,实现流畅的阿克曼转向控制。
java sql 查询数据自动转成xml_SqlServer将查询结果转换为XML和JSON
很久之前用到的,现在整理在这,里面一些代码来源于网上,不过有些bug已被我修改了。1.查询结果转XMLDECLARE @ParameterSQL NVARCHAR(MAX)='SELECT * FROM table';DECLARE @SQL NVARCHAR(MAX)DECLARE @XMLString VARCHAR(MAX)DECLARE @XML XMLDECLARE @Paramlist...
LTspice 导入 PSpice 模型实战指南 --(解决语法兼容性与模型优化问题)
本文提供了将PSpice模型成功导入LTspice的详细实战指南。针对两者间的语法兼容性问题,文章以TI UCC23513为例,逐步讲解模型获取、符号创建、常见语法错误修改及仿真验证方法,并分享了模型优化与个人库管理技巧,帮助用户高效解决模型导入与仿真难题。
RK3399平台开发系列讲解(内核入门篇)1.1、通过sysfs清楚了解设备的系统状况
文章目录1、不敢高声语,恐惊天上人:sysfs目的2、窥一斑而知全豹:sysfs目录介绍3、千丝万缕:sysfs中要素的关系4、数据观星:sysfs中相关结构体 1、不敢高声语,恐惊天上人:sysfs目的 我们想通过sys下面的目录和文件清楚的了解跑Liunx系统的嵌入式设备的系统状况。 2、窥一斑而知全豹:sysfs目录介绍 sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件.
将xml转成json c语言,把XML文件内容转成JSON串
public static String ConvertXMLtoJSON("f:/test.xml"){// 获取xml字符串String xml = getXMLString(filePath);// 序列化XMLSerializer xmlSerializer = new XMLSerializer();// 把xml内容转成jsonJSON json = xmlSerializer.rea...
Ubuntu系统等保3级配置核查与加固
虽然这种方法在某些老旧的系统中仍然有效,但现代Linux发行版通常不推荐使用hosts.deny和hosts.allow文件来管理防火墙规则,因为它们的功能已经被更现代的防火墙管理工具(如iptables或firewalld)所取代。如果你想禁止特定的环境变量,可以从这个列表中移除它们,或者如果你想完全阻止所有环境变量的传递,可以将其设置为空。你可以通过ssh-keygen生成密钥对,并将公钥添加到用户的~/.ssh/authorized_keys文件中。修改配置后,需要重启SSH服务以使更改生效。
使用python批量把Json文件转成xml文件
使用labelme制作数据集时,产生了json文件,如何把json文件转成所需的xml文件 每一张标好的图对应一个json文件,转成对应的xml文件 这是总的文件夹jsonToXml下包括两个文件夹 xmlDataSet JsonDataSet 这是xmlDataSet文件夹下包括的三个子文件夹 Annotations ImageSets JPEGImages 这...
PCL 建筑物点云立面和平面分割提取【2025最新版】
在建筑物点云中,立面点和平面点的法向量存在明显的差异,根据法向量在Z方向的分量设置相应得阈值即可实现立面点与平面点的分割。
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
xml格式数据转成json
如何将xml代码转成json格式的代码? 在这里,我才用的是引入xmltodict依赖包,用xmltodict来解决这个问题。 首先,安装xmltodict: pip install xmltodict==0.12.0 其次,样例xml解析成json演示: # -*- coding: utf-8 -*- import xmltodict import json a = ''' <Logon...
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
用DOM4J来把XML文件转成JSON对象
前面有两篇博客都是讲的用前端js把XML解析出来,今天采用java的dom4j来在后台解析一个XMl,并且转成json格式后传到前台。 xml文件还是原来用的那一个(前两篇博文用到的),所以直接上java解析的代码: package com.geoway.test; import java.io.File; import java.util.ArrayList; import java.ut
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
labelme的json数据转成labelImg的xml数据
所有文件在json_to_xml文件夹中,共有三个python文件,分别包括main.py,create_xml_anno.py,read_json_anno.py。下面分别介绍这三个文件。 输入:由labelme的rectangle或这polygon方式标注生成的json文件; 输出:类似于labelImg的rectangle方式标注生成的xml文件,是左上角和右下角的坐标。 read...
JavaScript将XML转成JSON的方法
上面的menu.json文件改成menu.xml文件后,这些代码需要改的什么?json转换成XML后,对应的JS文件要怎么改?
Java中Json对象转成xml字符串
Java中Json转成xml 可读性 JSON和XML的可读性可谓不相上下,XML略占上风。 可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。 编码难度 XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不
PHP 将xml 转成json;
1.php将xml转成json; $xml = simplexml_load_string($xmlStr); $json = json_encode($xml);
使用 JavaScript 将 XML 转成 JSON
1. [代码][JavaScript]代码 // Changes XML to JSON function xmlToJson(xml) { // Create the return object var obj = {}; if (xml.nodeType == 1) { // element // do attributes
把json文本转成xml举例
目的 把json文本转成xml文本表示 KJSonToXml.h #define BANK_ID L"id" #define BANK_TEXT L"text" #define BANK_CHILDREN L"children" struct BankInfo
【踩坑】XML转JSON中如何把单个元素转成数组
踩坑XML转JSON中如何把单个元素转成数组
把XML文件内容转成JSON串
2019独角兽企业重金招聘Python工程师标准>>> ...
通过google的gson把xml转成json
通过google的gson把xml转成json
889



被折叠的 条评论
为什么被折叠?



