精华内容
下载资源
问答
  • java解析xml字符串

    2008-12-03 20:34:09
    java解析xml字符串,添加属性,更新属性等
  • Java解析XML字符串格式

    2020-08-11 11:37:33
    Java解析XML字符串格式代码示例结果展示 代码示例 public static void main(String[] args) { String parseStr = null; String returnMsg = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+ "<Result ...

    Java解析XML字符串格式

    前言

    java解析XML字符串格式使用的是Dom4j这一种方式;

    dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。

    使用Dom4j是hibernate底层也是通过Dom4j来实现的

    代码示例

    pom.xml中引入dom4j包

    <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>1.6.1</version>
            </dependency>
    

    代码实现

    public static void main(String[] args) {
            String parseStr = null;
            String returnMsg = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
                    "<Result xmlns=\"http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out\">"+
                    "<row resultcount=\"1\">"+
                    "<users_id>1001     </users_id>"+
                    "<users_name>wangwei   </users_name>"+
                    "<users_group>80        </users_group>"+
                    "<users_address>1001号   </users_address>"+
                    "</row>"+
                    "<row resultcount=\"2\">"+
                    "<users_id>1002     </users_id>"+
                    "<users_name>wangwei   </users_name>"+
                    "<users_group>80        </users_group>"+
                    "<users_address>1002号   </users_address>"+
                    "</row>"+
                    "</Result>";
    
            try {
                Document doc = DocumentHelper.parseText(returnMsg);
                Element roots = doc.getRootElement();
                //System.out.println("根节点 = [" + roots.getName() + "]");
                //System.out.println("内容:" + roots.getText());
                parseStr = roots.getText();
                Iterator elements=roots.elementIterator();
                while (elements.hasNext()){
                    Element child= (Element) elements.next();
                    //System.out.println("节点名称 = [" + child.getName() + "]"+"节点内容:"+child.getText());
                    List subElemets=child.elements();
                    //System.out.println(subElemets.size());
                    List<Map<String,Object>> treeMapList = new ArrayList<>();
                   for(int i=0;i<subElemets.size();i++){
                       Map<String,Object> mapData = new HashedMap();
                       Element subChild= (Element) subElemets.get(i);
                       mapData.put(subChild.getName(),subChild.getText());
                       treeMapList.add(mapData);
                       //System.out.println("子节点名称:"+subChild.getName()+";子节点内容:"+subChild.getText());
                   }
                    System.out.println(treeMapList);
                }
            } catch (DocumentException e) {
                e.printStackTrace();
            }
            //System.out.println(parseStr);
           // return parseStr;
        }
    

    结果展示

    在这里插入图片描述

    展开全文
  • java读取xml字符串

    千次阅读 2016-10-27 12:41:12
    Document document = null; try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory ...DocumentBuilder builder = builderFactory....import javax.xml.parsers.DocumentBuilderFactory;
    Document document = null;
    try {
    DocumentBuilderFactory builderFactory = DocumentBuilderFactory
    .newInstance();
    DocumentBuilder builder = builderFactory.newDocumentBuilder();
    // 接收航信电子票返回的信息
    document = builder.parse(new ByteArrayInputStream(retStr
    .getBytes("utf-8")));
    } catch (Exception e) {
    e.printStackTrace();
    throw new BusinessException("开票失败!!!解析航信返回信息为: " + document);
    }
    NodeList fphm = document.getElementsByTagName("FP_HM"); // 发票号码

    NodeList fpdm = document.getElementsByTagName("FP_DM"); // 发票代码


    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;

    展开全文
  • Java 格式化xml字符串

    千次阅读 2017-09-13 15:38:37
    Java 格式化xml字符串

    Java 格式化xml字符串


    基础思路

    xml格式报文采用标签对的形式来表示,通常的结构为value,其中,value值可以为嵌套的xml报文。
    先假设这样一个xml字符串:

    <xml><a>1</a><b><c>2</c></b><d>3</d></xml>

    格式化后的样式为:

    <xml>
        <a>1</a>
        <b>
            <c>2</c>
        </b>
        <d>3</d>
    </xml>

    本文的解决思路为:

    • 读取xml报文的第一个标签,读取这个标签的内容,记作inside,和这个标签外的报文记作outside。
    • 依次对inside和outside作为xml报文对其进行步骤1的处理。如果检测到inside不是xml报文或outside为空,则不做处理。

    代码实现

    主体代码:

    private static String formatXml(String message, int depth) {
        String format = ""; //格式化的xml报文
        String firstTag = getFirstTag(message);
        String inside = getInsideContent(firstTag, message);
        String outside = getOutsideContent(firstTag, message);
    
        String insideTag = getFirstTag(inside); //根据是否含有第一个标签来获取字符串是否是xml报文格式,这个的判断逻辑并不严谨
        //对于inside是xml报文的情况下,当前标签的结束标记需要另起一行
        if (insideTag == null) {
            format = "\r\n" + indent(depth) + "<" 
                + firstTag + ">" + inside + "</" + firstTag + ">";
        } else {
            format = "\r\n" + indent(depth) + "<" 
                + firstTag + ">" + formatXml(inside, depth + 1)
                + indent(depth) + "</" + firstTag + ">";
        }
        String outsideTag = getFirstTag(outside);
        if (outsideTag != null) {
            format += indent(depth) + formatXml(outside, depth);
        } else {
            format += "\r\n";
        }
        return format;
    }

    以下函数实现比较容易,就不贴代码出来了:

    • String getFirstTag(String content)
      content:xml报文
      return:获取xml报文的第一个标签,没有则返回为空

    • String getInsideContent(String tag, String content)
      tag:标签
      content:xml报文
      return:获取该标签下的value值

    • String getOutsideContent(String tag, String content)
      tag:标签
      content:xml报文
      return:获取该标签外的报文

    • String indent(int depth)
      depth:报文深度
      return:获取当前标签需要的空格字符串

    测试

    测试代码:
    formatXml(content, 0)
    测试数据:

    <books><book><author>Jack Herrington</author><title>PHP Hacks</title><publisher>O'Reilly</publisher></book><book><author>王小为</author><title>深入在线工具</title><publisher>aTool.org组织</publisher></book></books>

    测试截图:
    这里写图片描述

    项目地址

    项目地址

    展开全文
  • <?xml version='1.0' encoding='UTF-8'?> <mark id='321'>this is a mark! 来 来解析 解析 ``` 用java怎么一次性全部解析,还要有层级...
  • JAVA读取XML形式字符串

    2010-10-08 16:07:09
    StringReader reader=new StringReader(requestXml); InputSource inputSource=new InputSource(reader); SAXBuilder saxBuilder=new SAXBuilder(); try { Document documen=saxBuilder.build(inputSou...
    StringReader reader=new StringReader(requestXml);
    
    InputSource inputSource=new InputSource(reader);
    SAXBuilder saxBuilder=new SAXBuilder();
    try {
    Document documen=saxBuilder.build(inputSource);
    Element root=documen.getRootElement();
    System.out.println(root.getName());
    List<String> jiedian=root.getChildren();
    System.out.println(root.getChild("Message").getText());
    } catch (JDOMException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    展开全文
  • * xml字符串转换json字符串 * @param xml xml字符串 * @return 返回json字符串 */ public static String xmlStrToJsonStr(String xml) { XMLSerializer xmlSerializer = new XMLSerializer(); ...
  • 如果使用Java StAX api读取xml文件,则可能会有某些字段缺少某些部分。这篇文章跟踪我如何解决问题。通过添加以下代码行可以解决问题。 XMLInputFactory inputFactory = XMLInputFactory。newInstance (); //添加...
  • package ... import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; i...
  • 在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化的XML Document。这就涉及到XML字符串和Xml Document的转换问题,说白了这是个很简单的问题,本文就各种XML解析器分别列举如下,以方便自己今后...
  • 这次分享的是Java中使用XML字符串和XSLT字符串作为参数获取转换后的结果字符串。 分享的方法仅解决上述问题,对于XSLT字符串中可能存在的XSLT注入问题、大字符串的性能问题未做考虑。 关键代码如下: package ...
  • 目录前言XML字符串一、用DOM4J解析xml字符串DOM4J生成xml格式的字符串二、使用JDK的org.w3c.dom.Document解析xml字符串org.w3c.dom.Document生成xml字符串org.w3c.dom的接口说明 前言 我们在对接接口的时候,可能...
  • 各位大大,最近公司生产出了这样一个问题,java从oracle数据库读取XML字符串,并生成XML文件。结果XML文件中的中文全部变成了问号。XML字符串在数据库中是以<CLOB>形式存进去的,且数据库中XML串的中文不是...
  • DOM4J 读取xml字符串

    2019-03-19 01:59:06
    NULL 博文链接:https://navylee.iteye.com/blog/727103
  • java解析xml文件,返回xml字符串

    千次阅读 2016-05-04 14:59:29
    javax.xml.transform.Transformer t = tfac.newTransformer(); t.setOutputProperty(OutputKeys.ENCODING, "UTF-16"); t.setOutputProperty(OutputKeys.INDENT, "yes"); t.setOutputProperty...
  • java中dom4j读取xml格式字符串所用到的Jar编写工具类,返回读取结果为map集合 所用到的Jar 这里贴出pom,需要jar文件自行下载或留言我 <dependency> <groupId>dom4j</groupId> <...
  • 实际平常我们用到解析xml大部分都是拿文件去处理,直接用xml字符串的比较少的,实际好好的分析一下,两者之间的转换,就会发现,就是文件流和字节流之间的转换喽,接下来开始代码分析: 1.代码部分: import java...
  • SAX读取XML字符串

    千次阅读 2006-05-17 18:26:00
    现在网络上的SAX读取XML源码,一般都是针对大XML文件的,对于如何读取字符串没有提及.在调试的时候出现了错误,经过检查发现是参数Attributes 的问题,必须要指定它所在的包.这是一个要注意的地方.源码如下: package ...
  • dom4j 是最常用的 xml 解析框架之一,其他还有 jdom、dom 都属于优秀的 xml 框架,这里就以 dom4j 为例,示范一下 xml 字符串的解析 package dom4j; import org.dom4j.Attribute; import org.dom4j.Document; ...
  • JAVA解析XML格式字符串

    千次阅读 2016-11-06 23:25:27
    import java.io.IOException; import java.io.StringReader; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.Namespace; im
  • 由于最近要用的是XML格式的字符串,而不用写到文件中,所以对原始代码进行了修改如下: 要读的xml文件 李华 14 张三 16 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutput
  • Java 读取 XML 文件内容

    2015-10-07 21:35:50
    Java 读取 XML 文件内容
  • 今天小编就为大家分享一篇java读取文件内容为string字符串的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • java 读取xml文件,并转换成字符串

    万次阅读 2012-05-09 15:39:00
    package com.sfzc.books.service.imp; import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.net.URL; import org.jdom.input.SAXBuilder; import org.jdom.output.Forma
  • java 解析xml报文(字符串)

    万次阅读 多人点赞 2019-09-30 10:19:58
    一:maven: <!--解析xml报文--> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1....
  • java jdom解析xml格式字符串

    千次阅读 2012-02-28 13:39:32
    * 解析xml字符串成List * * @param String * @return List */ public static List parse(String xmlDoc) { // 创建一个新的字符串 StringReader xmlString = new StringReader(xml

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,685
精华内容 54,674
关键字:

java读取xml字符串内容

java 订阅