`

java解析xml字符串

    博客分类:
  • xml
 
阅读更多

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;
    }

 

分享到:
评论

相关推荐

    JAVA JAXB 解析XML嵌套子节点为字符串

    使用JAXB解析XML时,我们首先需要创建一个Java类模型,这个模型反映了XML文档的结构。每个XML元素对应一个Java类,类的属性对应元素的属性或子元素。例如,如果XML中有以下结构: ```xml &lt;text&gt;Some text here ...

    java xml和map互转

    `xmlToMap`方法首先使用SAXReader解析XML字符串,然后递归地遍历XML文档的元素,将它们转换为Map结构。 `mapToXml`方法则将Map转换成XML字符串: ```java import org.dom4j.Document; import org.dom4j....

    java将xml串转换成Map类型

    将xml串转换成Map类型,如果有重复节点,自动转换为list类型存储,所以最终转换并非绝对Map

    xml字符串解析

    在Java中,我们可以使用DOM4J来解析XML字符串,以下是一个简单的步骤: 1. **导入DOM4J库**:确保项目中已经引入了DOM4J的依赖,如果没有,可以添加对应的Maven或Gradle依赖。 2. **读取XML字符串**:从文件、网络...

    将string类型xml字符串转为json字符串

    总结来说,将string类型的XML字符串转换为JSON字符串是通过解析XML字符串并构建相应的JSON对象来完成的。这个过程通常需要借助特定的库,如Java中的`org.json`。理解XML和JSON的结构差异,以及如何利用这些库进行...

    java中解析json字符串

    本文将深入探讨如何在Java中解析JSON字符串,以满足后端处理前端传递的数据需求。 首先,理解JSON的基本结构至关重要。JSON格式通常包含键值对,可以是对象(用花括号 `{}` 包裹)或数组(用方括号 `[]` 包裹)。...

    android SAX解析String类型 XML 字符串

    接着,我们需要创建一个`XMLReader`对象并设置我们的处理器,然后使用`parse`方法解析XML字符串: ```java InputSource inputSource = new InputSource(new StringReader(xmlString)); XMLReader xmlReader = ...

    xml格式的字符串转换成List

    1. **解析XML**:可以使用内置库或第三方库来解析XML字符串。在Java中,可以使用DOM(Document Object Model)、SAX(Simple API for XML)或者JAXB(Java Architecture for XML Binding)。在.NET环境中,有...

    4种解析xml文件 实例

    本文将深入探讨Java平台下解析XML的四种主流方法:DOM、SAX、DOM4J和JDOM。 1. **DOM(Document Object Model)解析XML** DOM是一种树形结构,它将整个XML文档加载到内存中,形成一个完整的对象模型。这种解析方式...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...

    解析XML文件(字符串)的两种方法

    本文介绍了使用Java语言解析XML字符串的两种方法:通过`SAXReader`和`DocumentHelper`。这两种方法各有优势,选择哪种取决于具体的使用场景和需求。此外,还讨论了如何在使用DOM4J库时忽略DTD验证,这对于提高解析...

    Jdom 生成和解析XML字符串

    ### JDOM 生成和解析 XML 字符串 #### 一、概述 JDOM(Java Document Object Model)是一种基于 Java 的 API,用于处理 XML 文档。它提供了一种简单且直观的方式来构建、修改以及读取 XML 文件。JDOM 主要有两个...

    JDK自带方法解析xml特定格式的字符串

    - 调用`newDocumentBuilder()`方法生成`DocumentBuilder`实例,它负责解析XML字符串。 2. **解析XML字符串**: - 使用`parse()`方法,传入一个`InputSource`对象,可以是包含XML的`StringReader`或`InputStream`...

    PB 解析xml格式串

    在“PB解析xml格式串”的主题中,我们主要关注如何将XML格式的数据转换为Protocol Buffers的二进制格式,以便于高效地存储和传输。以下是一些相关的知识点: 1. **Protocol Buffers介绍**:PB是一种高效的序列化...

    xml解析和生成字符串、文档的实例

    首先,让我们从解析XML字符串开始。在Java中,我们可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来实现这一目标。以下是一个简单的示例: ```java import javax.xml.parsers....

    xml数据前后台解析:jdom与dom4j源码,程序可以跑

    同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等组成。元素是XML的核心,它们通过层级关系...

    java 解析xml获取节点内容

    将读取到的XML字符串转换为`InputSource`对象,然后用`DocumentBuilder`解析这个源。 ```java InputSource inputSource = new InputSource(new StringReader(xmlContent.toString())); Document document = ...

    xml字符串转换为xml文档并解析。

    一般银行返回的字符串为xml报文,需先转换为xml文档方便解析。

Global site tag (gtag.js) - Google Analytics