package com.framework.webservice;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class XmlUtil {
public static String xmlString2MapObject(String strXML){
StringBuilder sb = new StringBuilder();
try {
Document doc = DocumentHelper.parseText(strXML);
Element rootElt = doc.getRootElement();
List<Element> liste2 = rootElt.elements();
for(int i=0 ;i<liste2.size();i++){
sb.append(getSubEle(liste2.get(i)));
}
} catch (DocumentException e) {
e.printStackTrace();
}
return sb.toString();
}
/**
* 看看还有更深层节点不 */
public static boolean isHasSubEle(Element e){
return !e.isTextOnly();
}
/**
* 节点遍历
* @param e
*/
public static String getSubEle(Element e){
StringBuilder sb = new StringBuilder();
boolean sub = isHasSubEle(e);
if(sub){
List<Element> subs = e.elements();
for(int j=0 ;j<subs.size();j++){
sb.append(getSubEle(subs.get(j)));
}
}else {
sb.append(e.getText());
//System.out.println("key="+e.getName()+" value="+e.getText());
}
return sb.toString();
}
public static void main(String[] args) {
String xmlString = "<env:Envelope xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+"<env:Body>"
+"<n1:AllContract1Response env:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:n1=\"urn:ActionWebService\">"
+"<return xsi:type=\"xsd:string\">"
+"[{\"contract_sale\":{\"price\":500.0,\"total\":17000.0,\"good_name\":\"\u8d2b\u7164\uff08\u8d2b\u7626\u7164\uff09\",\"contract_sale_no\":\"ZB20100003\",\"good_type\":\"\u672b\u7164\"}},{\"contract_sale\":{\"price\":230.0,\"total\":200000.0,\"good_name\":\"3#\u65e0\u70df\u7164\",\"contract_sale_no\":\"YQGL2013010\",\"good_type\":\"\u7164\u6ce5\"}}]</return>"
+"</n1:AllContract1Response>"
+"</env:Body>"
+"</env:Envelope>";
String str = xmlString2MapObject(xmlString);
System.out.println(str);
}
}
//**********************************************************************
import
org.jdom.Document;
import
org.jdom.Element;
import
org.jdom.JDOMException;
import
org.jdom.input.SAXBuilder;
import
org.xml.sax.InputSource;
public
List xmlElements(String xmlDoc) {
//创建一个新的字符串
StringReader read =
new
StringReader(xmlDoc);
//创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
InputSource source =
new
InputSource(read);
//创建一个新的SAXBuilder
SAXBuilder sb =
new
SAXBuilder();
try
{
//通过输入源构造一个Document
Document doc = sb.build(source);
//取的根元素
Element root = doc.getRootElement();
System.out.println(root.getName());
//输出根元素的名称(测试)
System.out.println(root.getChildText(
"number"
));
}
catch
(JDOMException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
catch
(IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return
null
;
}
相关推荐
使用JAXB解析XML时,我们首先需要创建一个Java类模型,这个模型反映了XML文档的结构。每个XML元素对应一个Java类,类的属性对应元素的属性或子元素。例如,如果XML中有以下结构: ```xml <text>Some text here ...
`xmlToMap`方法首先使用SAXReader解析XML字符串,然后递归地遍历XML文档的元素,将它们转换为Map结构。 `mapToXml`方法则将Map转换成XML字符串: ```java import org.dom4j.Document; import org.dom4j....
将xml串转换成Map类型,如果有重复节点,自动转换为list类型存储,所以最终转换并非绝对Map
在Java中,我们可以使用DOM4J来解析XML字符串,以下是一个简单的步骤: 1. **导入DOM4J库**:确保项目中已经引入了DOM4J的依赖,如果没有,可以添加对应的Maven或Gradle依赖。 2. **读取XML字符串**:从文件、网络...
总结来说,将string类型的XML字符串转换为JSON字符串是通过解析XML字符串并构建相应的JSON对象来完成的。这个过程通常需要借助特定的库,如Java中的`org.json`。理解XML和JSON的结构差异,以及如何利用这些库进行...
本文将深入探讨如何在Java中解析JSON字符串,以满足后端处理前端传递的数据需求。 首先,理解JSON的基本结构至关重要。JSON格式通常包含键值对,可以是对象(用花括号 `{}` 包裹)或数组(用方括号 `[]` 包裹)。...
接着,我们需要创建一个`XMLReader`对象并设置我们的处理器,然后使用`parse`方法解析XML字符串: ```java InputSource inputSource = new InputSource(new StringReader(xmlString)); XMLReader xmlReader = ...
1. **解析XML**:可以使用内置库或第三方库来解析XML字符串。在Java中,可以使用DOM(Document Object Model)、SAX(Simple API for XML)或者JAXB(Java Architecture for XML Binding)。在.NET环境中,有...
本文将深入探讨Java平台下解析XML的四种主流方法:DOM、SAX、DOM4J和JDOM。 1. **DOM(Document Object Model)解析XML** DOM是一种树形结构,它将整个XML文档加载到内存中,形成一个完整的对象模型。这种解析方式...
本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...
本文介绍了使用Java语言解析XML字符串的两种方法:通过`SAXReader`和`DocumentHelper`。这两种方法各有优势,选择哪种取决于具体的使用场景和需求。此外,还讨论了如何在使用DOM4J库时忽略DTD验证,这对于提高解析...
### JDOM 生成和解析 XML 字符串 #### 一、概述 JDOM(Java Document Object Model)是一种基于 Java 的 API,用于处理 XML 文档。它提供了一种简单且直观的方式来构建、修改以及读取 XML 文件。JDOM 主要有两个...
- 调用`newDocumentBuilder()`方法生成`DocumentBuilder`实例,它负责解析XML字符串。 2. **解析XML字符串**: - 使用`parse()`方法,传入一个`InputSource`对象,可以是包含XML的`StringReader`或`InputStream`...
在“PB解析xml格式串”的主题中,我们主要关注如何将XML格式的数据转换为Protocol Buffers的二进制格式,以便于高效地存储和传输。以下是一些相关的知识点: 1. **Protocol Buffers介绍**:PB是一种高效的序列化...
首先,让我们从解析XML字符串开始。在Java中,我们可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来实现这一目标。以下是一个简单的示例: ```java import javax.xml.parsers....
同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等组成。元素是XML的核心,它们通过层级关系...
将读取到的XML字符串转换为`InputSource`对象,然后用`DocumentBuilder`解析这个源。 ```java InputSource inputSource = new InputSource(new StringReader(xmlContent.toString())); Document document = ...
一般银行返回的字符串为xml报文,需先转换为xml文档方便解析。