java 解析xml报文(字符串)「建议收藏」

java 解析xml报文(字符串)「建议收藏」一:maven:<!–解析xml报文–><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1….

大家好,又见面了,我是你们的朋友全栈君。

一:maven:

        <!--解析xml报文-->
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>

二:工具类:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

/**
 * @description 解析xml字符串
 */
public class Test {
    public static void readStringXml(String xml) {
        Document doc = null;
        try {
            doc = DocumentHelper.parseText(xml); // 将字符串转为XML
            Element rootElt = doc.getRootElement(); // 获取根节点
            System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
            Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head
            // 遍历head节点
            while (iter.hasNext()) {
                Element recordEle = (Element) iter.next();
                String title = recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title值
                System.out.println("title:" + title);
                Iterator iters = recordEle.elementIterator("script"); // 获取子节点head下的子节点script
                // 遍历Header节点下的Response节点
                while (iters.hasNext()) {
                    Element itemEle = (Element) iters.next();
                    String username = itemEle.elementTextTrim("username"); // 拿到head下的子节点script下的字节点username的值
                    String password = itemEle.elementTextTrim("password");
                    System.out.println("username:" + username);
                    System.out.println("password:" + password);
                }
            }
            Iterator iterss = rootElt.elementIterator("body"); ///获取根节点下的子节点body
            // 遍历body节点
            while (iterss.hasNext()) {
                Element recordEless = (Element) iterss.next();
                String result = recordEless.elementTextTrim("result"); // 拿到body节点下的子节点result值
                System.out.println("result:" + result);
                Iterator itersElIterator = recordEless.elementIterator("form"); // 获取子节点body下的子节点form
                // 遍历Header节点下的Response节点
                while (itersElIterator.hasNext()) {
                    Element itemEle = (Element) itersElIterator.next();
                    String banlce = itemEle.elementTextTrim("banlce"); // 拿到body下的子节点form下的字节点banlce的值
                    String subID = itemEle.elementTextTrim("subID");
                    System.out.println("banlce:" + banlce);
                    System.out.println("subID:" + subID);
                }
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

三:测试

    public static void main(String[] args) {
        String xmlString = "<html>"
                + "<head>"
                + "     <title>dom4j解析一个例子</title>"
                + "     <script>"
                + "         <username>yangrong</username>"
                + "         <password>123456</password>"
                + "     </script>"
                + "</head>"
                + "<body>"
                + "     <result>0</result>"
                + "     <form>"
                + "         <banlce>1000</banlce>"
                + "         <subID>36242519880716</subID>"
                + "     </form>"
                + "     <form>"
                + "         <banlce>200</banlce>"
                + "         <subID>222222222222</subID>"
                + "     </form>"
                + "</body>"
                + "</html>";
        readStringXml(xmlString);
    }

控制台:

java 解析xml报文(字符串)「建议收藏」

ps:更换xml的报文需要更改工具类的节点名称

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135916.html原文链接:https://javaforall.net

(1)
上一篇 2022年6月4日 下午2:00
下一篇 2022年6月4日 下午2:16


相关推荐

  • python_sklearn库的使用

    python_sklearn库的使用sklearn库的使用

    2022年10月17日
    5
  • IDEA代码格式化快捷键失效的解决办法

    IDEA代码格式化快捷键失效的解决办法IDEA 默认的代码格式化快捷键是 Ctrl Alt L 但是有时候会默明失效 回来想到里也有这个快捷键 但是我并没有登入 又因为我喜欢一边网易云一边敲代码 所以查了一下网易云的快捷键 发现真的有这个快捷键 是用来标记喜欢的音乐的 关掉网易云后 IDEA 格式化快捷键就可以使用了

    2026年3月18日
    3
  • js小脚本——判断小弹窗和用户浏览器类型

    js小脚本——判断小弹窗和用户浏览器类型

    2021年8月26日
    86
  • 分享一个免费版本库可以建私库

    分享一个免费版本库可以建私库别的不多说目前这个行业小团队比较多,想要版本库的话  看下面  反正我个人一直在用  所以就推荐给你们。我不介绍github,和gitorious因为github在私人库的时候是收费的而最早的gitorious是没办法建私人库开源是帮助了很多人但如果你是一个小团队想找一个比较好而又免费的版本库的话我推荐使用bitbucket能建立免费私人库容量是无限大支持5人小团队一起合作

    2022年7月18日
    14
  • grub修复系统引导_grub无法引导windows

    grub修复系统引导_grub无法引导windowshttp://blog.chinaunix.net/u/24866/showart_2118188.html这是原创地址,写的也很详细~ 转载于:https://blog.51cto.com/1866045/364779

    2022年8月12日
    6
  • SpringMVC 处理器适配器详解[通俗易懂]

    SpringMVC 处理器适配器详解[通俗易懂]0x00:介绍处理器适配器HandlerAdapter:作用是根据映射器找到的处理器Handler信息,按照特定的规则去执行相关的处理器Handler。其配置方式有两种,一种是基于xml的资源配置,也就是非注解的配置方式。另外一种就是基于Annotation注解的配置。其注解在代码中做上特殊标记,这些标记就可以编译、类加载、运行时被读取,然后去执行相应的处理。0x01:…

    2022年6月8日
    66

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号