专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Javaweb开发实战视频,XML学习整理

Javaweb开发实战视频,XML学习整理

更新时间:2020-05-08 16:23:38 来源:动力节点 浏览1662次

JavaWeb开发能力是Java程序员的必备基础能力,因此掌握它十分重要。今天本文要和大家分享的是JavaWeb开发中有关XML学习笔记的整理。主要内容包括了XML的概念、XML的语法、约束和解析。感兴趣的朋友就一起来看看吧!

Javaweb开发实战视频,XML学习整理

1.XML的概念

XML全称是ExtensibleMarkupLanguage,它是一种可扩展标记语言。所谓的可扩展,指的是标签都是自定义的。XML的功能是存储数据,包括配置文件和在网络中传输。XML与html的区别是XML标签都是自定义的,而html标签是预定义。XML的语法严格但html语法松散。另外XML是存储数据的,html是展示数据

2,XML的语法

(1)基本语法:

  • xml文档的后缀名.xml
  • xml第一行必须定义为文档声明
  • xml文档中有且仅有一个根标签
  • 属性值必须使用引号(单双都可)引起来
  • 标签必须正确关闭
  • xml标签名称区分大小写

(2)快速入门:

<?xmlversion='1.0'?>
<users>
<userid='1'>
<name>zhangsan</name>
23
<gender>male</gender>
<br/>
</user>
<userid='2'>
<name>lisi</name>
24
<gender>female</gender>
</user>
</users>

(3)组成部分:

1)文档声明

格式:<?xml属性列表?>

属性列表:

version:版本号,必须的属性

encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1

standalone:是否独立

取值:

yes:不依赖其他文件

no:依赖其他文件

2)指令:

<?xml-stylesheettype="text/css"href="a.css"?>

3)标签:标签名称自定义的

规则:

名称可以包含字母、数字以及其他的字符;名称不能以数字或者标点符号开始;名称不能以字母xml(或者XML、Xml等等)开始;名称不能包含空格

4)属性:id属性值唯一

5)文本:

 CDATA区:在该区域中的数据会被原样展示.

 格式:<![CDATA[数据]]>

3.约束:规定xml文档的书写规则

作为框架的使用者需要能够在xml中引入约束文档,能够简单的读懂约束文档。其分类有:DTD一种简单的约束技术。DTD引入dtd文档到xml文档中;内部dtd:将约束规则定义在xml文档中;外部dtd:将约束的规则定义在外部的dtd文件中;本地:<!DOCTYPE根标签名SYSTEM"dtd文件的位置">;网络:<!DOCTYPE根标签名PUBLIC"dtd文件名字""dtd文件的位置URL">。Schema一种复杂的约束技术。引入填写xml文档的根元素,引入xsi前缀.

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"引入xsd文件命名空间.
xsi:schemaLocation="http://www.itcast.cn/xmlstudent.xsd"为每一个xsd约束声明一个前缀,作为标识xmlns="http://www.itcast.cn/xml"
<studentsxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.itcast.cn/xml"
xsi:schemaLocation="http://www.itcast.cn/xmlstudent.xsd">

4.解析

(1)操作xml文档

  • 解析(读取):将文档中的数据读取到内存中
  • 写入:将内存中的数据保存到xml文档中。持久化的存储

(2)解析xml的方式:

  • DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树。优点是操作方便,可以对文档进行CRUD的所有操作。缺点是占内存。
  • SAX:逐行读取,基于事件驱动的。其优点是不占内存,缺点是只能读取,不能增删改

(3)xml常见的解析器:

  • JAXP:sun公司提供的解析器,支持dom和sax两种思想
  • DOM4J:一款非常优秀的解析器
  • Jsoup:jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
  • PULL:Android操作系统内置的解析器,sax方式的。

(4)Jsoup

jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

1)快速入门:

步骤是导入jar包;获取Document对象;获取对应的标签Element对象;获取数据。代码如下:

//2.1获取student.xml的path
Stringpath=JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
//2.2解析xml文档,加载文档进内存,获取dom树--->Document
Documentdocument=Jsoup.parse(newFile(path),"utf-8");
//3.获取元素对象Element
Elementselements=document.getElementsByTag("name");
System.out.println(elements.size());
//3.1获取第一个name的Element对象
Elementelement=elements.get(0);
//3.2获取数据
Stringname=element.text();
System.out.println(name);

2)对象的使用:

  • Jsoup:工具类,可以解析html或xml文档,返回Document
  • parse:解析html或xml文档,返回Document
  • parse(Filein,StringcharsetName):解析xml或html文件的。
  • parse(Stringhtml):解析xml或html字符串
  • parse(URLurl,inttimeoutMillis):通过网络路径获取指定的html或xml的文档对象

3)Document:文档对象。代表内存中的dom树

获取Element对象

  • getElementById(Stringid):根据id属性值获取唯一的element对象
  • getElementsByTag(StringtagName):根据标签名称获取元素对象集合
  • getElementsByAttribute(Stringkey):根据属性名称获取元素对象集合
  • getElementsByAttributeValue(Stringkey,Stringvalue):根据对应的属性名和属性值获取

4)元素对象集合

Elements:元素Element对象的集合。可以当做ArrayList<Element>来使用

5)快捷查询方式:

①selector:选择器

使用的方法:Elementsselect(StringcssQuery)

语法:参考Selector类中定义的语法

②XPath:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言

使用Jsoup的Xpath需要额外导入jar包。

查询w3cshool参考手册,使用xpath的语法完成查询

代码:

//1.获取student.xml的path
Stringpath=JsoupDemo6.class.getClassLoader().getResource("student.xml").getPath();
//2.获取Document对象
Documentdocument=Jsoup.parse(newFile(path),"utf-8");
//3.根据document对象,创建JXDocument对象
JXDocumentjxDocument=newJXDocument(document);
//4.结合xpath语法查询
//4.1查询所有student标签
ListjxNodes=jxDocument.selN("//student");
for(JXNodejxNode:jxNodes){
System.out.println(jxNode);
}

System.out.println("--------------------");
//4.2查询所有student标签下的name标签
ListjxNodes2=jxDocument.selN("//student/name");
for(JXNodejxNode:jxNodes2){
System.out.println(jxNode);
}

System.out.println("--------------------");
//4.3查询student标签下带有id属性的name标签
ListjxNodes3=jxDocument.selN("//student/name[@id]");
for(JXNodejxNode:jxNodes3){
System.out.println(jxNode);
}

System.out.println("--------------------");
//4.4查询student标签下带有id属性的name标签并且id属性值为itcast
ListjxNodes4=jxDocument.selN("//student/name[@id='itcast']");
for(JXNodejxNode:jxNodes4){
System.out.println(jxNode);
}

以上就是动力节点java培训机构的小编针对“Javaweb开发实战视频,XML学习整理”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务

Javaweb热门基础学习

EL&JSTL:http://www.bjpowernode.com/javavideo/122.html

Filter&Listener:http://www.bjpowernode.com/javavideo/121.html

JSP:http://www.bjpowernode.com/javavideo/120.html

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>