廖雪峰Java14Java操作XML和JSON-1XML-2DOM

DOM:
Document Object Model
DOM模型就是把XML文档作为一个树形结构,从根结点开始,每个节点都可以包含任意个字节点。

用Java解析XML时,
Document代表整个XML文档
Element表示元素
Attribute:属性

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(XML_URL);
        Element root = doc.getDocumentElement();
import org.w3c.dom.Document;
import org.w3c.dom.Node;

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

public class DomSample {
    static final  String XML_URL = "http://rss.sina.com.cn/tech/internet/home28.xml";
    public static void main(String[] args) throws Exception{
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(XML_URL);
        printNode(doc,0);
    }
    static void printNode(Node n, int indent){
        for(int i=0;i<indent;i++){
            System.out.print(' ');
        }
        switch (n.getNodeType()){
            case Node.DOCUMENT_NODE:
                System.out.println("Document:"+n.getNodeName());
                break;
            case Node.ELEMENT_NODE:
                System.out.println("Element:"+n.getNodeName());
                break;
            case Node.TEXT_NODE:
                System.out.println("Text:"+n.getNodeName()+"="+n.getNodeValue());
                break;
            case Node.ATTRIBUTE_NODE:
                System.out.println("Attr:"+n.getNodeName()+"="+n.getNodeValue());
                break;
            case Node.CDATA_SECTION_NODE:
                System.out.println("CDATA:"+n.getNodeName()+"="+n.getNodeValue());
                break;
            case Node.COMMENT_NODE:
                System.out.println("Commment:"+n.getNodeName()+"="+n.getNodeValue());
                break;
            default:
                System.out.println("NodeType:"+n.getNodeType()+",NodeName:"+n.getNodeName());
        }
        for(Node child=n.getFirstChild();child != null;child=child.getNextSibling()){
            printNode(child,indent+1);
        }
    }
}

总结:

Java DOM API:

  • 将XML解析为DOM
  • 可在内存中完整表示XML数据结构
  • 解析速度慢,内存占用大

原文地址:https://www.cnblogs.com/csj2018/p/11379284.html

时间: 2024-10-01 22:00:10

廖雪峰Java14Java操作XML和JSON-1XML-2DOM的相关文章

廖雪峰Java14Java操作XML和JSON-2JSON-1Json介绍

JSON是一种类似JavaScript对象的数据表示格式 JavaScript Object Notation 去除了JavaScript的执行语句 仅保留数据 JSON格式: 仅保留UTF-8编码 必须使用双引号 特殊字符用\转译 "abc\nxyz\tend" JSON特点: 适合表示层次结构 格式简单.仅支持 * {..} 键值对 * [...] 数组 * String字符串 * Number数值(整数和浮点数) * Boolean 布尔值 * null空值 { "co

廖雪峰js教程笔记9 json

JSON是JavaScript Object Notation的缩写,它是一种数据交换格式. 在JSON出现之前,大家一直用XML来传递数据.因为XML是一种纯文本格式,所以它适合在网络上交换数据.XML本身不算复杂,但是,加上DTD.XSD.XPath.XSLT等一大堆复杂的规范以后,任何正常的软件开发人员碰到XML都会感觉头大了,最后大家发现,即使你努力钻研几个月,也未必搞得清楚XML的规范. 终于,在2002年的一天,道格拉斯·克罗克福特(Douglas Crockford)同学为了拯救深

【廖雪峰老师python教程】——IO编程

同步IO 异步IO 最常见的IO--读写文件 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). open() read() close() try: f = open('/path/to/file', 'r') print(f.read()) finally

16_Android的数据存储_ SharedPreference、XML和JSON

1. Android读写首选项 1.1 SharedPreferences SharedPreferences 是一种轻型的数据存储方式,它的本质是基于XML文件存储Key-Value键值对数据,通常用来存储一些简单的配置信息,其存储位置在/data/data/<包名>/shared_prefs目录下. SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现.本例程讲解 SharedPreference 数据的读写操作. 1 package

将场景导出XML或JSON或二进制并且解析还原场景

导出unity场景的所有游戏对象信息,一种是XML一种是JSON.本篇文章我们把游戏场景中游戏对象的.旋转.缩放.平移与Prefab的名称导出在XML与JSON中.然后解析刚刚导出的XML或JSON通过脚本把导出的游戏场景还原.在Unity官网上下载随便下载一个demo Project,如下图所示这是我刚刚在官网上下载的一个范例程序. 接着将层次视图中的所有游戏对象都封装成Prefab保存在资源路径中,这里注意一下如果你的Prefab绑定的脚本中有public Object 的话 ,需要在代码中

XML与JSON

在我们做各个系统和各个服务端的数据交互的时候会遇到其中两种数据格式,那就是xml和json,下面来谈谈这两种数据模式. XML 什么是xml? XML 是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分. 您可以创建内容,然后使用限定标记标记它,从而使每个单词.短语或块成为可识别.可分类的信息.您创建的文件,或文档实例 由元素(标记)和内容构成.元素的描述性越强,文档各部分越容易识别. 构建XML          1.XML

我的git学习记录------------从廖雪峰老师网站的学习总结

这篇文章只用作自我学习,部分参考来自廖雪峰老师网站 mkdir 路径/文件名(d:/test)  创建文件夹 cd  路径/文件名(cd d:/test)  进入文件夹 pwd   显示当前所出位置的路径   确保全英路径(注意) cd 仓库(repository)文件路径       eg(cd d:/test) git init   初始化空的仓库,把这个目录变成git可以管理的仓库 编写一个readme.txt文件,内容如下: Git is a version control system

Windows 10开发基础——XML和JSON (二)

主要内容: Linq to XML Newtonsoft.Json.Linq来解析JSON 博客园RSS(http://www.cnblogs.com/rss)的解析 UWP调用自己实现的Web API 1.Linq to XML     Linq to XML不是一个新鲜的话题了,网上以及各种资料对这个介绍都比较多.今天就简单了解下,不做深入的研究...在代码中生成XML文档,使用Linq to XML会比Windows.Data.Xml.Dom命名空间下的类简单,使用起来也更加灵活.Linq

XML,Object,Json转换之浅析Xstream的使用

XML,Object,Json转换之浅析Xstream的使用 请尊重他人的劳动成果,转载请注明出处:XML,Object,Json转换之浅析Xstream的使用 XStream的是一个简单的库,主要用于Java对象和XML之间的转换.但XStream也内置了对Json的支持. 1.Xstream的特点: 这里直接引用Xstream官方的叙述: 灵活易用:在更高的层次上提供了简单.灵活.易用的统一接口,用户无需了解项目的底层细节 无需映射:大多数对象都可以在无需映射的情况下进行序列化与反序列化的操