文档章节

xml解析

GithubXD
 GithubXD
发布于 06/19 17:32
字数 375
阅读 16
收藏 0
点赞 0
评论 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
博文 40
码字总数 41786
作品 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
Android 创建与解析XML(六)—— 比较与使用

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

长平狐
2013/01/06
1K
0
网络数据交换格式

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

android-key
2016/10/08
14
0
【iOS】Plist-XML-JSON数据解析

网络上传输数据通用的有XML,JSON等,iOS中也可以用Plist。 要进行数据传输,就要首先进行序列化: 1.序列化. 对象转换成二进制流.(这个一句话就行) 2.反序列化. 二进制流转换为对象等. (关键...

xn4545945
2014/07/13
0
0
iOS网络开发教程之XML解析

XML简介 什么是XML? 全称是 ExtensibleMarkupLanguage. 可扩展标记语言. 跟JSON一样,也是常用的一种用于交互的数据格式 一般也叫做XML文档 ( XML Document ) XML举例 XML语法: 一个常见的XML...

iOS编程开发
2017/12/18
0
0
Java处理XML的三种主流技术

大名鼎鼎的 DOM 说它大名鼎鼎可是一点不为过,DOM 是 W3C 处理 XML 的标准 API,它是许多其它与 XML 处理相关的标准的基础,不仅是 Java,其它诸如 Javascript,PHP,MS .NET 等等语言都实现...

e良师益友
2016/01/13
32
0
Python_016 XML解析

XML 指可扩展标记语言(eXtensible Markup Language)。 XML 被设计用来传输和存储数据。 XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。 它也是元标记语言...

g00m
2015/02/21
0
0
常见C/C++ XML解析器比较

常见C/C++ XML解析器有tinyxml、XERCES、squashxml、xmlite、pugxml、libxml等等,这些解析器有些是支持多语言的,有些只是单纯C/C++的。如果你是第一次接触到XML解析,那么关于XML解析器的选...

moki_oschina
2015/12/09
74
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

www.w3.org被qiang导致logback报错:Connect reset

web项目部署到tomcat后,web项目中的logback不能运行,报错信息如下: Reported exception: ch.qos.logback.core.joran.spi.JoranException: I/O error occurred while parsing xml file......

浮躁的码农
21分钟前
0
0
JDeveloper中文乱码解决

全局设置字体; 全局设置环境编码; 项目设置编译器环境编码。

wffger
48分钟前
1
0
MySQL主从介绍 , 准备工作,配置主,配置从, 测试主从同步

MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启bin...

TaoXu
今天
1
0
线性代数学习总结

亭子happy
今天
1
0
Java8:Lambda表达式增强版Comparator和排序

1、概述 在这篇教程里,我们将要去了解下即将到来的JDK 8(译注,现在JDK 8已经发布了)中的Lambda表达式——特别是怎样使用它来编写Comparator和对集合(Collection)进行排序。 这篇文章是...

孟飞阳
今天
0
0
从架构到组件,深挖istio如何连接、管理和保护微服务2.0?

近几年我一直从事于微服务系统的设计以及实现方面的工作,属于微服务架构一线实践者。之前做过一些单体系统的微服务改造,在微服务拆分、治理等方面都有一定的经验。 本人比较特殊一点的经历...

xiaomin0322
今天
1
0
基于vue的h5文件切片上传(获取文件md5,实现秒传、进度条实现)

template <button @click="file"></button><label ref="upload" style="position: relative;"> <input type="file" @change="selectFile" style="position: abs......

hkaikai
今天
1
0
Spring Boot 2.0 项目实现自同步AD域账号

在通过Spring Boot的自动化装配功能及JDK自带的LDAP模块,可通过如下几个简单步骤实现业务系统自动同步AD域账号功能。 1. Java自带ldap搜索域账号信息核心代码: try { LdapContext ctx...

B超
今天
1
0
Python----字符串中编码的问题

字符串中编码的问题 1、字符串前加 u 例:u"我是含有中文字符组成的字符串。" 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用...

android-key
今天
1
0
Tomcat8.0 + Redis 实现 Session 会话共享

由于项目需要,需要实现Tomcat8.0 + Redis 实现 Session 会话共享,以便于实现多应用集群。后参考了开源项目: https://github.com/jcoleman/tomcat-redis-session-manager 进行调整后实现该...

杨应滨
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部