XML——解析XML文档

【0】README

0.1)本文描述 转自 core java volume 2, 旨在理解 XML——解析XML文档 的基础知识;
0.2) for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/chapter2/ParseXMLTest.java


【1】解析XML文档相关

0)解析器

  • 0.1)树型解析器:(树结构)
  • 0.2)流机制解析器:读入XML文档时生成相应的事件;

1)解析器定义: 解析器是这样一个程序, 它读入一个文件,确认这个文件具有正确的格式,然后将其分解成各种元素,使得程序员能够访问这些元素; (干货——解析器定义)
2)java 库提供了两种XML解析器: (干货——两种XML解析器定义)

  • 2.1)树型解析器:像文档对象模型(Document Object Model, DOM)解析器这样的树型解析器,它们将读入的XML文档转换为 树结构;
  • 2.2)流机制解析器:像XML简单API(Simple API for XML, SAX)解析器这样的流机制解析器, 它们在读入XML文档时生成相应的事件;

3)java XML 处理API(java API for XML Processing, JAXP)库:使得实际上可以以插件形式使用这些解析器中的任意一个, 但JDK 包含了自己的DOM解析器;

  • 3.1)解析步骤(steps):
  • s1)创建一个 DocumentBuilder 对象,可以从DocumentBuilderFactory中得到这个对象,如:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
  • s2)可以从文件中读入某个文档:
File f = ...;
Document doc = builder.parse(f);
  • s2.1)或者用一个URL:
URL u = ...;
Document doc = builder.parse(u);
  • s2.2)甚至可以指定一个任意输入 流:
InputStream is = ...;
Document doc = builder.parse(is);
  • Attention) 如果使用输入流作为输入源,那么对于那些以该文档的位置为相对路径而被引用的文档,解析器将无法定位;但是可以安装一个“实体解析器”来解决这个问题;
  • 3.2)Document对象: 是XML 文档的树型结构在内存中的表现,它由实现了Node 接口及其各种子接口的类的对象构成;Node 接口及其子接口的层次结构如下: (干货——Document对象)
    这里写图片描述

  • 3.2.1)可以通过调用 getDocumentElement 方法来启动对文档内容的分析,它将返回根元素:

Element root = doc.getDocumentElement();
  • 3.2.2)如果要得到该元素的子元素,使用 getChildNodes 方法,这个方法返回一个类型为 NodeList 的 集合;
  • 3.2.3)item 方法:将得到指定索引值的项;
  • 3.2.4)getLength方法: 则提供了项的总数;
  • 3.2.5) 看个荔枝:像这样枚举所有子元素:
NodeList children = root.getChildNodes();
for (i < children.getLength())Node child = children.item(i);
  • 3.2.6)如果只希望获得子元素,可以忽略空白字符:
for (i < children.getLength())
{Node child = children.item(i);if(child instanceof Element)
}
  • 现在,只会看到两个元素: 标签名是 name 和 size;

  • 3.3) 方法集合:

    • 3.3.1) getLashChild, getNextSibling 方法;
    • 3.3.2)枚举节点属性, getAtributes;
    • 3.3.3)调用getNodeName 和getNodeValue 方法可以得到 属性名和属性值(getAttribute 方法);
    • 3.3.4)知道属性名, 可以直接获取属性值:
String unit = element.getAttribtte("unit");

4)解析来自给定文件, URL 或输入流的 XML 文档,返回解析后的文档的三种方法(Methods); (干货——三种解析来自给定文件的方法,分别是文件对象,String对象 和 输入流对象)

  • M1) Document parse(File f) ;
  • M2) Document parse(String url) ;
  • M3) Document parse(InputStrema in) ;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机维修与维护入门,计算机组装与维护基础知识

《计算机组装与维护基础知识》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《计算机组装与维护基础知识(5页珍藏版)》请在人人文库网上搜索。1、计算机组装与维护基础知识关键考点&#xff1a;CPU主板内存硬盘显卡CMOS硬件组装操作系统学生姓名&#xff1a;总分&…

java oauth2.0_OAuth 2.0 Java指南:5分钟保护您的应用程序安全

java oauth2.0使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 今天尝试Okta。 现代应用程序依赖于用户身份验证&#xff0c;但是它可能给Java开发人员带来困难的挑战&#xff0c;以及…

Java编程规范

一、常见命名规则 (1)匈牙利命名法 比 较著名的命名规则是匈牙利命名法&#xff0c;但这种命名法对于跨平台移植简直是灾难。这种命名方法是由Microsoft程序员查尔斯西蒙尼(Charles Simonyi) 提出的。其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。匈牙利…

XML—— 验证XML文档

【0】README 0.0&#xff09;本文文字描述转自 core java volume 2 &#xff0c; 旨在理解 XML—— 验证XML文档 的基础知识 0.1&#xff09;problemsolution &#xff08;干货——不推荐使用DOM 技术解析XML&#xff09; 0.1.1&#xff09;problem&#xff1a;如果仅仅按照…

计算机数据链路层教案,第三章 数据链路层(2) 新.ppt

文档介绍&#xff1a;计算机通信网20112011年教案年教案作者:段景山作者:段景山杨宁杨宁毛玉明毛玉明2第三章数据链路层??链路层功能链路层功能??成帧成帧??差错检测和纠正差错检测和纠正??差控与流控协议差控与流控协议??协议描述与验证协议描述与验证??示例示例?…

java导出javadoc文档

一、注释 (1)文档注释的格式化 生成的文档是 HTML 格式&#xff0c;而这些 HTML 格式的标识符并不是 javadoc 加的&#xff0c;而是我们在写注释的时候写上去的。比如&#xff0c;需要换行时&#xff0c;不是敲入一个回车符&#xff0c;而是写入 &#xff1c;br&#xff1e;&a…

java内核_测量时间:从Java到内核再到

java内核问题陈述 当您深入研究时&#xff0c;即使是最基本的问题也会变得很有趣。 今天&#xff0c;我想深入研究一下Java时间。 我们将从Java API的最基础知识开始&#xff0c;然后逐步降低堆栈&#xff1a;通过OpenJDK源代码glibc一直到Linux内核。 我们将研究各种环境下的性…

XML——文档类型定义(DTD-Document Type Definition)

【0】README 0.1&#xff09;本文文字描述转自 core java volume 2 &#xff0c; 旨在理解 XML——文档类型定义&#xff08;DTD-Document Type Definition&#xff09; 的基础知识&#xff1b; 0.2&#xff09; for source code, please visit https://github.com/pacosonTa…

职称计算机考试 数量,职称计算机考试WPS基础考点:自动求和

职称计算机考试WPS基础考点&#xff1a;自动求和导语&#xff1a;随着信息技术的发展&#xff0c;计算机日益走进人们的工作、学习和生活&#xff0c;成为专业技术人员不可或缺的工具。下面我们一起来看看职称计算机考试WPS的内容吧。1. 对不相邻单元格的数据求和假如要将单元格…

java静态导入

一、静态导入 在Java 5中&#xff0c;import语句得到了增强&#xff0c;以便提供甚至更加强大的减少击键次数功能&#xff0c;虽然一些人争议说这是以可读性为代价的。这种新的特性成为静态导入。当你想使用static成员时&#xff0c;可以使用静态导入&#xff08;在API中的类和…

java流写入数据库_成为Java流大师–第4部分:数据库流

java流写入数据库SQL一直是一种声明性语言&#xff0c;而Java长期以来势在必行。 Java流改变了游戏规则。 通过本动手文章编写您的方式&#xff0c;并学习如何使用Java流对RDBMS数据库执行声明性查询&#xff0c;而无需编写任何SQL代码。 您会发现&#xff0c;Java流和SQL命令的…

XML——XML Schema

【0】README 0.0&#xff09;本文文字描述转自 core java volume 2 &#xff0c; 旨在理解 XML——XML Schema 的基础知识 &#xff1b;&#xff08;本文不涉及源代码&#xff0c; 很遗憾&#xff0c;以后会补充&#xff09; 【1】XML Schema 相关 1.0&#xff09;为什么引入…

怎么为pdf文件添加水印?

怎么为pdf文件添加水印&#xff1f;PDF是一种很好用的文件格式&#xff0c;这种格式能够很有效的保护我们的文件&#xff0c;但有时可能还会被破解&#xff0c;这种时候在PDF上添加水印就是比较好的方法。 综上所述&#xff0c;PDF是保密性很强的文件&#xff0c;但添加水印能够…

皖西学院计算机协会组织部,皖西学院

皖西学院关于卢义忠同志兼任安徽省高校后勤协会理事的请示安徽省委组织部:根据《关于进一步规范党政机关和企事业单位领导干部兼任社会组织职务审批管理的通知》(皖组通字〔2016〕40号)等文件精神&#xff0c;经皖西学院党委1月17日研究建议&#xff1a;因校领导分工调整&#…

java 用流创建流_成为Java流大师–第1部分:创建流

java 用流创建流在许多情况下&#xff0c;声明性代码&#xff08;例如&#xff0c;具有Streams的功能组合&#xff09;提供了出色的代码指标。 通过该动手实验文章系列进行编码&#xff0c;并成为Java Streams的主教练&#xff0c;从而成为一名更好的Java程序员。 Streams的整…

java的for循环

一、普通for循环&#xff08;1&#xff09;for循环语法 for&#xff08;initialization; condition; update&#xff09;{statements;} &#xff08;2&#xff09;语法解释 1、for语句执行时&#xff0c;首先执行初始化操作&#xff08;initialization&#xff09;&#xff0c…

XML——使用 XPath来定位信息+使用命名空间

【0】README 0.1&#xff09;本文文字描述转自 core java volume 2 &#xff0c; 旨在理解 XML——使用 XPath来定位信息使用命名空间 的基础知识 &#xff1b; 0.2&#xff09; for detailed XPath info &#xff1a; please visit ( http://www.ruanyifeng.com/blog/2009/…

计算机教室英语怎么读音,网络教室,network classroom,音标,读音,翻译,英文例句,英语词典...

多媒体教室1.多媒体教室基本组成多媒体教室由多媒体计算机、液晶投影机、数字视频展示台、中央控制系统、投影屏幕、音响设备等多种现代教学设备组成。(1)多媒体液晶投影机是整个多媒体演示教室中最重要的也是最昂贵的设备&#xff0c;它连接着计算机系统、所有视频输出系统及数…

算法一之简单选择排序

一、 选择排序的思想 选择排序的基本思想是&#xff1a;每一趟在n-i1&#xff08;i1&#xff0c;2&#xff0c;…n-1&#xff09;个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。简单选择排序的基本思想&a…

XML——流机制解析器

【0】README 0.1&#xff09; 本文文字描述转自 core java volume 2 &#xff0c; 旨在理解 XML——流机制解析器 的基础知识 &#xff1b; 0.2&#xff09; for detailed StAX, please visit http://blog.csdn.net/pacosonswjtu/article/details/50569728 【1】XML——流机制…