文档章节

xml解析

GithubXD
 GithubXD
发布于 06/19 17:32
字数 375
阅读 20
收藏 0

方法一:

String s_xml1 = "<xml>" +
        "<head>lalalalal</head>" +
        "<body>1234</body>" +
        "</xml>";
try {
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
    Document document = builder.parse(new InputSource(new StringReader(s_xml1)));
    Element element = document.getDocumentElement();
    NodeList childNodes = element.getChildNodes();
    if (childNodes != null) {
        for (int i = 0; i < childNodes.getLength(); i++) {
            Node item = childNodes.item(i);
            String name = item.getNodeName();
            String nodeValue = item.getNodeValue();
            String textContent = item.getTextContent();
            Log.i("xx-----", name + "---" + nodeValue + "---" + textContent);
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}

方法二:

public void s() {
        //创建一个DocumentBuilderFactory的对象
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        //创建一个DocumentBuilder的对象
        String xmlStr = "<?xml version=\"1.0\" encoding=\"utf-8\"?><html><head><title METANAME=\"MobilePayPlatform\" CONTENT=\"amount=1,amt_type=RMB,mer_date=20180619,mer_id=69002429,mer_priv=7242A100005259,order_id=707794189,platDate=20180619,ret_code=00200014,ret_msg=支付结果不明,请稍后调用订单查询接口获取订单状态!,sign_type=RSA,trade_state=TRADE_FAIL,version=4.0,sign=rZhSnK+5zMzEoeKAODq0liT0BdPjqjkSKJTHrGzuHJLPJ3gsrS8qh06C5ZM0qHOG8FGmTlPq22VBAgPDMSsM8zvKTTKGDlwbSBzAZ8U1xMsewo+/w6tRHWlT39rKo1CreIKZ1OSDtiyTPy+DKnGey6AEohB3Y52zPROTiBH5nz8=\"/></head><body></body></html>";

        StringReader sr = new StringReader(xmlStr);
        InputSource is = new InputSource(sr);

        HashMap<String, String> hashMap = new HashMap<String, String>();
        try {
            //创建DocumentBuilder对象
            DocumentBuilder db = dbf.newDocumentBuilder();
            //通过DocumentBuilder对象的parser方法加载books.xml文件到当前项目下
            Document document = db.parse(is);
            //获取所有book节点的集合
            NodeList bookList = document.getElementsByTagName("title");
            //通过nodelist的getLength()方法可以获取bookList的长度
      System.out.println("一共有" + bookList.getLength() + "个title节点");

            for (int i = 0; i < bookList.getLength(); i++) {
                Node book = bookList.item(i);

                NamedNodeMap attrs = book.getAttributes();
   System.out.println("第 " + (i + 1) + "个title节点共有" + attrs.getLength() + "个属性");

                for (int j = 0; j < attrs.getLength(); j++) {
                    //通过item(index)方法获取book节点的某一个属性
                    Node attr = attrs.item(j);

                    if (attr.getNodeName().equals("CONTENT")) {

                        String name = attr.getNodeName();
                        String value = attr.getNodeValue();
                        //获取属性名
//                        System.out.print("属性名:" + name);
                        //获取属性值
//                        System.out.println("--属性值: " + value);

                        String[] splitValue = value.split(",");

                        for (int k = 0; k < splitValue.length; k++) {

                            String resultValue = splitValue[k];

                            String[] splitResult = resultValue.split("=");

                            hashMap.put(splitResult[0], splitResult[1]);

                        }
                    }
                }

            }
            for (String key : hashMap.keySet()) {
                System.out.println("key= " + key + " and value= " + hashMap.get(key));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

© 著作权归作者所有

共有 人打赏支持
GithubXD
粉丝 0
博文 45
码字总数 47633
作品 0
西安
私信 提问
Java 处理 XML 的三种主流技术及介绍

XML (eXtensible Markup Language) 意为可扩展标记语言,它已经是软件开发行业中大多数程序员和厂商用以选择作为数据传输的载体。本文作者对于 Java 处理 XML 的几种主流技术进行一些总结和介...

IBMdW
2012/08/14
7.4K
15
XML解析方法详解

今日目标:DOM、 SAX、 STAX、 XML解析API 今日重点:JAXP DOM解析 、JAXP SAX解析、XML PULL解析。 XML现在已成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。深入了...

honzhang
2017/12/26
0
0
网络数据交换格式

1.Json的讲解 1.1json是什么? •JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。 JSON采用兼容性很高...

android-key
2016/10/08
14
0
Android 创建与解析XML(六)—— 比较与使用

前面介绍了四种创建、解析XML的方式: 0、 Android 创建与解析XML(一)—— 概述 1、 Android 创建与解析XML(二)—— Dom方式 2、 Android 创建与解析XML(三)—— Sax方式 3、 Android ...

长平狐
2013/01/06
1K
0
Android第二十三天

一:XML概念: XML(eXtended Markup Language)可扩展标示语言 XML是跨平台、跨网络、跨语言的用来数据交换、系统配置的可扩展标示语言。 XML的优势:可以清晰地进行数据描述。 XML格式: <?...

黄晓磊
2016/06/29
14
0

没有更多内容

加载失败,请刷新页面

加载更多

当S8遇上边缘计算:谈阿里云ENS对直播业务场景的支撑

摘要: 类似S8赛事这样的大型活动直播的特点和技术挑战是什么?为什么业务要下沉到边缘?自建边缘节点和与云服务厂商合作到底该如何选择?边缘节点服务(ENS)又是如何进行技术支撑?提供的针...

阿里云官方博客
5分钟前
1
0
supervisor安装配置

supervisor安装配置 安装 wget -c https://files.pythonhosted.org/packages/44/60/698e54b4a4a9b956b2d709b4b7b676119c833d811d53ee2500f1b5e96dc3/supervisor-3.3.4.tar.gztar -zxvf su......

jackmanwu
16分钟前
1
0
laravel定时器

民间高手: https://blog.csdn.net/zhezhebie/article/details/79205414 官方文档: https://laravel-china.org/docs/laravel/5.5/scheduling/1325...

vio小黑
38分钟前
0
0
Apache Zeppelin安装及使用

Apache Zeppelin官网:http://zeppelin.apache.org/ Apache Zeppelin介绍:A web-based notebook that enables interactive data analytics. You can make beautiful data-driven, interacti......

GordonNemo
39分钟前
4
0
关于python开发多个项目环境配置Anaconda

关于Anaconda用来管理Python的包和环境 下载并安装Anaconda 创建项目:windows键+R ==> 进入CMD => 输入conda create -n 项目名称 python=3 conda info -e 查看项目以及项目所在的位置,默认...

上官清偌
41分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部