java创建树结构_Java学习之XML-017

439213f3d5b55f0b4bf5caf3d9f5fa0d.png

如果想快速有效的学习,思想核心是“以建立知识体系为核心”,具体方法是“守破离”。反复练习直到熟练。————百战程序员


1.0 XML

1.1 XML 简介

XML 指可扩展标记语言。XML 被设计用来传输和存储数据。

1. 什么是XML

  • XML 指可扩展标记语言(EXtensible Markup Language)
  • XML 是一种标记语言,很类似 HTML
  • XML 的设计宗旨是传输数据,而非显示数据
  • XML 标签没有被预定义。您需要自行定义标签
  • XML 被设计为具有自我描述性
  • XML 是 W3C 的推荐标准

2. XML 和 HTML 的主要差异

  • XML 不是 HTML 的替代。
  • XML 和 HTML 为不同的目的而设计。
  • XML 被设计为传输和存储数据,其焦点是数据的内容。
  • HTML 被设计用来显示数据,其焦点是数据的外观。
  • HTML 旨在显示信息,而 XML 旨在传输信息。

3. 没有任何行为的XML

XML是不作为的。

也许这有点难以理解,但是 XML 不会做任何事情。XML 被设计用来结构化、存储以及传输信息。

4. XML 仅仅是纯文本

XML没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理XML。

不过,能够读懂XML的应用程序可以有针对性地处理XML标签。标签的功能性意义依赖应用程序的特性。

5. 通过XML您可以发明自己的标签

XML 没有预定义的标签。

在 HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如 <p> 、<h1> 等等)。

XML 允许创作者定义自己的标签和自己的文档结构。

6. XML 不是对 HTML 的替代

XML 是对 HTML 的补充

XML 不会替代 HTML,理解这一点很重要。在大多数 web 应用程序中,XML 用于传输数据,而 HTML 用于格式化并显示数据。

对 XML 最好的描述是:

XML 是独立于软件和硬件的信息传输工具。

7. XML 是 W3C 的推荐标准

可扩展标记语言 (XML) 于 1998 年 2 月 10 日成为 W3C 的推荐标准。

8. XML无处不在

目前,XML 在 Web 中起到的作用不会亚于一直作为 Web 基石的 HTML。

XML 无所不在。XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。

1.2 XML 用途

XML 应用于 web 开发的许多方面,常用于简化数据的存储和共享。

1,XML 把数据从 HTML 分离

2,XML 简化数据共享

3,XML 简化数据传输

4,XML 简化平台的变更

5,XML 使您的数据更有用

6,XML 用于创建新的 Internet 语言

1.3 XML 树结构

XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。

一个 XML 文档实例

<?xml version="1.0" encoding="utf-8"?>
<note>
<to>Li</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 。

下一行描述文档的根元素。

接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body)。

最后一行定义根元素的结尾。

2866698bacd41903f975a211769c615d.png
XML 文档形成一种树结构

1.4 XML 基本语法

XML的基本语法:

1)文档声明必须放在文档的第一行

2)XML有且只有一个根元素

3)所有标签必须成对出现

4)XML的标签严格区分大小写

5)XML必须正确嵌套

6)XML中的属性值必须加引号

7)XML中一些特殊字符需要使用“实体”

8)XML中可以应用适合的注释

XML元素 指的是开始标签到结束标签的部分,一个元素中可以包含其他元素,文本,属性等

XML 元素的命名规范:

1)名称可以包含字母、数字等其他字符,最好是用字母单词。

2)名称不能以数字或标点符号开始。

3)名称不能以字母XML开始

4)名称不能包含空格

1.5 验证XML文档 - Schema技术

1)Schema 是用 XML 验证 XML 遵循 XML 的语法

2)Schema 可以用处理 XML 文档的工具处理

3)Schema 大大扩充了数据类型,而且可以自定义数据类型

4)Schema 支持元素的继承

5)Schema 支持属性组

使用 Schema 验证 XML 文档的步骤:

1)创建SchemaFactory 工厂

2)建立验证文件对象

3)利用SchemaFactory 工厂对象,接受验证的文件对象,生成Schema 对象

4)产生对此Schema 的验证器

5)要验证的数据(准备的数据源)

6)开始验证

1.6 解析 XML 文档

四种方式解析XML 文档:

  1. DOM解析(Java官方提供)
  2. SAX解析(Java官方提供)
  3. JDOM解析(第三方提供)
  4. DOM4J解析(第三方提供)

1.6.1 DOM解析XML 的步骤

1)创建一个DocumentBuilderFactory的对象

2)创建一个DocumentBuilder对象

3)通过DocumentBuilder的parse(...)方法得到Document对象

4)通过getElementsByTagName(...)方法获取到节点列表

5)通过for循环遍历每一个节点

6)得到每个节点的属性和属性值

7)得到每个节点的节点和节点值

1.6.2 SAX解析XML 的步骤

1)创建SAXParserFactory的对象

2)创建SAXXParser对象(解析器)

3)创建一个DefaultHandler的子类

4)调用parse方法

1.6.3 JDOM解析XML 的步骤

1)创建一个SAXBuilder对象

2)调用build方法 得到Document对象(通过IO流)

3)获取根节点

4)获取根节点的直接子节点的集合

5)遍历集合

1.6.4 DOM4J解析XML 的步骤

1)创建SAXReader对象

2)调用read方法

3)获取根元素

4)通过迭代器遍历直接节点

四种解析XML技术的特点:

1)DOM解析:形成了树结构,有助于更好的理解、掌握,且代码容易编写。解析过程中,树结构保存在内存中,方便修改。

2)SAX解析:采用事件驱动模式,对内存消耗比较小。适用于只处理XML文件中的数据时。

3)JDOM解析:仅使用具体类 而不使用接口。API大量使用了Collect类。

4)JDOM4J解析:JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。它使用接口和抽象基本类方法。具有性能优异、灵活性好、功能强大和极易使用的特点。是一个开源的文件。

1.7 XPath 技术

XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

什么是 XPath?

  • XPath 使用路径表达式在 XML 文档中进行导航
  • XPath 包含一个标准函数库
  • XPath 是 XSLT 中的主要元素
  • XPath 是一个 W3C 标准

Java中使用XPath快速获取节点:

1)导入DOM4J包

2)导入Jaxen包

3)创建SAXReader对象

4)读取XML文件

5)获取目标节点,遍历查找目标元素


未完待续

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

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

相关文章

dll文件是什么

dll实际上是动态链接库的缩写&#xff0c;从windows1.0开始&#xff0c;动态链接库就是整个操作系统的基础&#xff0c;那么这有什么作用呢&#xff1f;在dos时代&#xff0c;程序员是通过编写程序来达到预期的目的的&#xff0c;每实现一个目的就需要编写一个程序&#xff0c;…

minecraft pythonapl_Substance PythonAPI入门案例

第一次在知乎发文&#xff0c;技术朋友们请多包涵。Substance Designer自去年夏天2018版推出Python API至今已有一年&#xff0c;从一开始的寒酸到现在的初成规模&#xff0c;官方的API库也随着版本的更新不断完善。目前网上(包括youtube)相关的教程甚少&#xff0c;即便是官方…

创建示例HTTPS服务器以获取乐趣和收益

通常&#xff0c;在开发人员或/和针对实际场景进行测试期间&#xff0c;我们&#xff08;开发人员&#xff09;面临着运行成熟的HTTPS服务器的需求&#xff0c;可能同时进行一些模拟。 在JVM平台上&#xff0c;除非您知道适合此工作的正确工具&#xff0c;否则它过去并不是一件…

WebDriver API元素的定位

一、以下截图为用FireBug定位的用火狐(Firefox)浏览器打开的百度首页&#xff0c;下面所讲述的八种定位方法&#xff0c;就是以该截图中的百度输入框为例子。 ①、FireBug是Firefox浏览器下的开发类插件&#xff0c;通过该插件可以查看HTML、CSS、Javascript控制台、网络状况监…

mysql字符乱码百度_如何解决MySQL字符集乱码问题

变量 a 的字符编码是由参数 CHARACTER_SET_CLIENT 决定的&#xff0c;假设此时编码为 A&#xff0c;也就是变量 a 的编码。2. 写入语句在发送到 MySQL 服务端之前的编码由 CHARACTER_SET_CONNECTION 决定&#xff0c;假设此时编码为 B。3. 经过 MySQL 一系列词法&#xff0c;语…

[水煮 ASP.NET Web API2 方法论](1-6)Model Validation

问题 想要 ASP.NET Web API 执行模型验证&#xff0c;同时可以和 ASP.NET MVC 共享一些验证逻辑。 解决方案 ASP.NET Web API 与 ASP.NET MVC 支持一样的验证机制&#xff0c;都是通过System.ComponentModel.DataAnnoataions 的属性验证。使用框架提供的相关验证属性&#xff0…

findbugs-dea_FindBugs和JSR-305

findbugs-dea假设该组开发人员在大型项目的各个部分上并行工作-一些开发人员在进行服务实现&#xff0c;而其他开发人员在使用该服务的代码。 考虑到API的假设&#xff0c;两个小组都同意服务API&#xff0c;并开始单独工作。 您认为这个故事会有幸福的结局吗&#xff1f; 好吧…

课程2 谈论音乐行业的趋势

1. 音乐词汇 CDdownloadLPsrecordsvinyl 黑胶sounddlbum covers 专辑封面2. 使用类似单词谈论各种录制你和聆听音乐的不同媒体 I still prefer the sound of my old LP records.My father used to by a lot of CDs.Most of my music these days is MP3s.3. 你可以使用这些词来谈…

带有ActiveMQ和Maven的JMS Sender应用程序

我们已经看到了如何使用ActiveMQ和Maven创建JMS Receiver应用程序 。 让我们看看我们如何类似地创建JMS Sender应用程序 。 web.xml与创建接收器应用程序时使用的相同&#xff1a; <web-app xmlns"http://java.sun.com/xml/ns/javaee"xmlns:xsi"http://www…

mysql自连接查询的sql语句_mysql 自连接

SELECT语句中的自连接。到目前为止&#xff0c;我们连接的都是两张不同的表&#xff0c;那么能不能对一张表进行自我连接呢&#xff1f;答案是肯定的。有没有必要对一张表进行自我连接呢&#xff1f;答案也是肯定的。表的别名&#xff1a;一张表可以自我连接。进行自连接时我们…

Spring的Lifecycle

Lifecycle接口定义了每个对象的重要方法&#xff0c;每个对象都有自己的生命周期需求&#xff0c;如下&#xff1a; public interface Lifecycle { void start(); void stop(); boolean isRunning(); } 任何spring管理的对象都可以实现这个接口。那么&#xff0c;当Appl…

mysql aes密钥大于16位_aes秘钥限制问题解决办法

在oarcle jdk1.8上执行256位的aes秘钥加密报错如下:java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key sizeat com.xx.opal.core.utils.aes.AESTool.encryptWithoutEncode(AESTool.java:33)at com.xx.opal.aes.AESTest.test(AESTest.java:19)at sun…

background-clip与background-origin

规定背景的绘制区域 浏览器支持 IE9、Firefox、Opera、Chrome 以及 Safari 支持 background-clip 属性。 注释&#xff1a;Internet Explorer 8 以及更早的版本不支持 background-clip 属性。IE9、Firefox、Opera、Chrome 以及 Safari 支持 background-clip 属性。 有三个值&am…

策略模式应用场景和uml_策略模式

策略模式应用场景和uml在最近的博客中&#xff0c;我收到了Wojciech Soczy&#xff1f;ski的评论&#xff0c;内容涉及在使用“不要问”&#xff08;TDA&#xff09;时如何使用“战略”模式实施单一责任原则&#xff08;SRP&#xff09;。 在某些时候&#xff0c;我打算进一步讨…

mysql建表时主键_mysql建表时怎么设置主键?

设置方法&#xff1a;在“CREATE TABLE”语句中&#xff0c;通过“PRIMARY KEY”关键字来指定主键&#xff0c;语法格式“字段名 数据类型 PRIMARY KEY [默认值]”或“[CONSTRAINT 约束名] PRIMARY KEY 字段名”。主键(PRIMARY KEY)的完整称呼是“主键约束”&#xff0c;是 MyS…

mysql的考试范围_数据库考试范围整理

填空&#xff1a;1.目前常用的数据库管理系统软件有Access 、SQL Sever和Oracle.2.数据实际上就是存储在某一种媒体上的能够被识别的物理符号。3.一个关系的逻辑结构就是一个二维表。4.对关系进行选择、投影或连接运算之后&#xff0c;运算的结果仍然是一个关系。5.在关系数据库…

Java EE 8 MVC:控制器的详细介绍

Java EE MVC是为Java EE 8规划并在JSR-371中指定的基于动作的新MVC框架。 这是我的Java EE 8 MVC教程的第二篇文章。 第一篇文章介绍了基础知识&#xff0c;并展示了如何开始使用 Java EE 8 MVC参考实现Ozark 。 在本文中&#xff0c;我们将更详细地介绍MVC控制器。 MVC控制器…

mysql htmlspecialchars_htmlSpecialchars和MySQL_REARY_EXECH_String是否保证PHP代码

当涉及到数据库查询时&#xff0c;始终尝试并使用准备好的参数化查询。这个mysqli和PDO图书馆支持这一点。这比使用转义函数(如mysql_real_escape_string.是,mysql_real_escape_string实际上只是一个字符串转义函数。这不是一颗神奇的子弹。它所要做的就是转义危险字符&#xf…

前端跨域问题的几种解决方案

前端跨域问题 一&#xff1a;同源策略   1.whats this     所谓同源是指&#xff0c;域名&#xff0c;协议&#xff0c;端口相同。当浏览器运行一个JS脚本时会进行同源检测&#xff0c;如果不同源是不能执行的。   2.源继承     来自about:blank&#xff0c;javasc…

在OpenShift上部署Java EE微服务

我昨天用WildFly Swarm在博客上发布了有关简单JAX-RS微服务的博客。 您学习了如何使用Maven构建一个所谓的“胖子”&#xff0c;还使用Maven Docker插件对我们的微服务进行了Docker化并在Docker Machine上本地运行。 这是在本地测试事物的好方法。 到目前为止&#xff0c;缺少的…