文档章节

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
博文 44
码字总数 46991
作品 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
Android第二十三天

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

黄晓磊
2016/06/29
14
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

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
45分钟前
4
0
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
55分钟前
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部