1.5 JavaScript基础-ECMAScript部分,JavaScript语法、基础对象
概念:javascript是客户端脚本语言,运行在客户端浏览器中,无需编译,可直接被浏览器解析执行。
功能:增强用户和html界面的交互过程,控制html元素,让界面有一些动态效果。
javascript=ECMAScript+JavaScript特有的(BOM和DOM)
基本语法:和html结合的方式。内部js:<script>标签中的内容就是js代码。外部js:定义script标签,通过src属性引入外部js文件。script可在html文件中任意位置并可以有多个,但是定义位置影响执行顺序。
js注释://(单行注释),/**/(多行注释)
js数据类型:原始数据类型:number、string、boolean、null、undefined;引用数据类型:对象
js变量:存储数据的内存空间;js是弱类型语言,开辟变量存储空间,不定义数据类型,可存储任意类型的数据;语法:var 变量名 = 初始化值;typeof()运算符获取变量的类型
js运算符:一元运算符:++,--,+(正号),-(负号);算数运算符:+,-,*,/,%,++,--;赋值运算符号:=,+=,-=,*=,/=,%=;比较运算符:==,===(值和类型全等),!=,>,<,>=,<=;逻辑运算符:&&,||,!;三元运算符:表达式?值1:值2。
js流控制语句:if...else;switch...case(可接受任意类型数据);while;do...while;for;
js对象:
String对象:(创建:var str = new String("字符串")、var str = "字符串";方法:blod()、fontcolor("red")、concat(str)、charAt()、indexOf();属性:length)
Function对象(定义:var 方法名 = function(形参){方法体};调用:方法名称(实际参数列表);特点:调用只和方法名称有关,和参数列表无关;方法声明中隐藏了内置对象arguements(是一个数组),封装了所有的参数;js中不存在重载,可以通过arguements来模拟重载);
Array对象:(创建方式:var arr = new Array(元素列表)、var arr = new Array(元素长度)、var arr = [元素列表];方法:concat、join、pop、push、reverse();属性:length;特点:元素类型可不同,长度可变);
Date对象(定义:var date = new Date();常见方法:toLocalString()、getTime());
Math对象:(创建:无需创建,直接使用,Math.方法名();方法:random()、ceil(x)、floor(x)、round(x);属性:PI(圆周率)、E(常量e));
RegExp对象(正则表达式,创建:var reg = new RegExp("正则表达式")、var reg = /正则表达式/;方法:test(参数));
Global对象:(特点:全局对象,方法无需对象可直接调用;调用:方法名();方法:encodeUTI()、decodeURI()、parseInt()、eval(){将字符串当作js脚本来执行});
1.6 JavaScript-BOM、DOM事件
BOM:浏览器对象模型
Navigator:浏览器对象,获取浏览器的信息。(属性:appName 返回浏览器名称)
Screen:屏幕对象,包含客户端屏幕信息。属性:width-屏幕宽度,length-屏幕高度
Location:地址栏对象,包含当前URL信息。创建:window.location;location;方法:reload()-刷新、href()-设置或返回完整url;
History:包含浏览器窗口访问过的URL。创建:window.history;history;方法:back()-加载前一个URL、forward()-加载后一个URL、go(参数{正数表示前进几个界面;负数表示后退几个界面})-加载某个具体界面;属性:length-url数量
Window:窗口对象,表示浏览器打开的窗口。
方法:
alert()-显示包含消息和确认按钮的弹出框、
confirm()-显示包含消息和确认按钮与取消按钮的弹出框,确认返回true,取消返回false;
prompt()-显示提示用户输入的对话框,返回值为用户输入内容、
close()-关闭浏览器窗口、
open(arg1,arg2,arg3,arg4)-打开浏览器窗口,参数可选,arg1传URL,arg2可以为"",arg3传入窗口特征宽高等,arg4可省略、
setTimeOut(code,millisec)-指定毫秒后调用函数或表达式
clearTimeout(id_of_settimeout): 取消由 setTimeout() 方法设置的 timeout,传入某个定时器的id用来取消指定的定时器.
setInterval(code,millisec): 按照指定的周期(以毫秒计)来调用函数或计算表达式。
clearInterval(id_of_settimeout): 取消由 setInterval() 设置的 timeout。
属性:
获取其他BOM对象:History、location、Navigator、Screen
获取DOM对象:document
特点:无需创建,直接window.方法名()可直接使用,window可省略
DOM:文档对象模型,使用对象的属性或方法操作文档;DOM已将html中的标签、属性、文本内容封装为对象
Document:整个文档对象。
创建:window.document、document;
方法:
write("html代码")-向页面输出变量html代码;
getElementById() : 根据id属性值获取元素对象,id属性值一般唯一
getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
创建其他DOM对象:createAttribute(name)、createComment()、createElement()、createTestNode()
Element:标签对象
创建:通过document来获取和创建,document.createElement()
方法:先通过document来获取元素,然后通过元素进行操作
getAttribute(attributename): 获取指定的属性
setAttribute(attributename,attributevalue): 给元素添加属性
removeAttribute(attributename): 移除指定名称的属性
注意: 不能删除value
getElementsByTagName(标签名): 兼容性好,获取标签下面子标签的唯一有效方法
Attribute:首先获取标签对象
Text:首先获取标签对象
Comment:注释对象
Node:节点对象
特点:所有dom对象都可看作是一个节点
属性:
nodeName:节点名称;nodeType:节点类型(标签、属性、文本的nodeType分别为1,2,3);nodeValue:节点的value值;
parentNode:父节点属性;childNodes:所有子节点;fiestChild:第一个子节点;lastChild:最后的子节点;
nextSibling:给定节点的下一个节点:previousSibling:给定节点的上一个节点
CURD_DOM树
查找节点:getElementById(),通过节点id,查找节点
添加节点:appendChild():向节点的子节点列表的结尾添加新的子节点
插入节点:insertBefore(newNode, oldNode): 向oldNode节点前插入一个新节点.通过父节点添加
删除节点:removeChild():删除(并返回)当前节点的指定子节点
替换节点:replaceChild(newNode, oldNode):用新节点替换一个子节点。通过父节点替换
复制节点:cloneNode(true): 复制节点
innerHTML属性:可获取文本内容或向标签设置内容
控制样式
提前定义好css选择器样式,然后在script标签中,通过元素的className来设置其class属性对应的样式
事件
概念:某些组件执行某些操作之后,触发了某些代码的执行。事件源、事件、监听器、注册监听:将事件源、事件、监听结合在一起。
常见事件
单击事件:onclick;双击事件:ondbclick;
失去焦点事件:onblur,一般用于表单验证
获得焦点事件:onfocus
加载事件:onload,页面或图像完成加载
鼠标事件:
onmousedown 鼠标按钮被按下。定义方法事,形参使用event对象接受,event对象的botton属性可以获取鼠标按钮被点击
onmouseup 鼠标按键被松开
onmousemove:鼠标移动
onmouseover:鼠标覆盖到某元素上
onmouseout:鼠标从某元素移开
键盘事件:
onkeydown 某个键盘按键被按下。
onkeyup 某个键盘按键被松开。
onkeypress 某个键盘按键被按下并松开
选择和改变
onchange:域的内容改变
onselect:文本被选中
表单事件
onsubmit:确认按钮被点击,方法返回false则表单被组织提交
onreset:重置按钮被点击
1.7 jQuery概述、使用、选择器、DOM操作
概述:js框架,本质上是js代码
使用:
三大版本。1.x,2.x,3.x。只有1.x兼容ie678,因此使用最广泛,普通项目足够使用。
项目中创建js目录,下载jquery的js文件,copy到js目录下,在html文件的head标签中进行引入 <script src="js/jquery-xxx.js"></script>
JQuery对象和js对象区别与转换:jquery对象操作更加方便,但是jquery和js对象不通用,需要两者相互转换
jquery转js:jq对象[索引]或者jq对象.get(索引)
js转jquery:$("js对象")
选择器
定义:筛选具有相似特征的元素(标签)
基本使用
事件绑定:$("#b1").click(function(){alert(“abc”);});
入口函数:$(function () {}); 可定义多次,window.onload()只可定义一次,如果定义多次后面的会覆盖掉前面的内容
样式控制:.css()方法,例如:$("#div1").css(“background-color”,“red”);
选择器分类:
基本选择器:
标签选择器: $("html标签名") 获得所有匹配标签名称的元素
ID选择器: $("#id的属性值") 获得与指定id属性值匹配的元素
类选择器:$(".class的属性值") 获得与指定的class属性值匹配的元素
并集选择器: $("选择器1,选择器2....") 获取多个选择器选中的所有元素
层级选择器:
后代选择器: $("A B") 选择A元素内部的所有B元素 (包括儿子,孙子等)
子元素选择器: $("A > B") 选择A元素内部的所有B子元素(只会查找儿子)
相邻兄弟选择器: $("A + B") 选择A元素后面的一个B元素(同级关系)
通用兄弟选择器: $("A ~ B") 选择A元素后面的所有B元素(同级关系)
兄弟姐妹选择器: $("A").siblings("B") 选择A元素前后的所有B元素(同级)
属性选择器
属性名称选择器:$("标签名[属性名]") 包含指定属性标签的选择器
属性选择器:$("标签名[属性名='值']") 包含指定属性等于指定值的选择器
符合属性选择器:$("标签名[属性名='值'][]...") 包含多个属性条件的选择器
过滤选择器
首元素选择器::first 获得选择的元素中的第一个元素;$("div:first").css("background-color", "red"); 改变获取的第一个div元素的背景色为红色
尾元素选择器::last 获得选择的元素中的最后一个元素;$("div:first").css("background-color", "red"); 改变获取的最后一个div元素的背景色为红色
非元素选择器: :not(selector) 不包括指定内容的元素;$("div:not(.one)").css("background-color", "red");改变class不为one的div元素背景色为红色
偶数选择器::even 偶数,从 0 开始计数;$("div:even").css("background-color", "red");改变索引
为偶数的div元素背景色为红色。索引从0开始
奇数选择器: :odd 奇数,从 0 开始计数;$("div:odd").css("background-color", "skyblue");改变索引为奇数的div元素背景色为红色。索引从0开始
等于索引选择器::eq(index) 指定索引元素;$("div:eq(3)").css("background-color", "pink");改变索引值等于3的div元素
大于索引选择器: :gt(index) 大于指定索引元素;$("div:gt(3)").css("background-color", "pink");改变索引值大于3的div元素
小于索引选择器: :lt(index) 大于指定索引元素;$("div:lt(3)").css("background-color", "pink");改变索引值小于3的div元素
标题选择器::header 获得标题(h1~h6)元素,固定写法;$(":header").css("background-color", "red");改变所有标题元素的背景色为红色
表单属性选择器
可用元素选择器: :enabled 获得可用元素; $("input[type='text']:enabled");获取多个Input标签中属性值是enabled,type=text的input标签数组;
不可用元素选择器::disabled 获得不可用元素;$("input[type='text']:disabled");获取多个Input标签中属性值是disabled,type=text的input标签数组;
(单选/复选)选中选择器: :checked 获得单选/复选框选中的元素;
(下拉)选中选择器: :selected 获得下拉框选中的元素; var $inputs = $("option:selected");for (var i = 0; i < $inputs.length; i++) { alert($($inputs[i]).text());} ;获取option标签中选择的元素,并进行遍历。从jquery对象中,获取的元素,变成了js,所以需要再次添加$转换为jquery进行使用
DOM操作
文本/值操作
html();获取/设置元素的标签体内容;等同于js的innerHTML
text();获取/设置元素的标签体纯文本内容;等同于js的innerTest
val(); 获取/设置元素的value属性值;等同于js的value
属性操作
通用属性操作:
attr() === setAttribute和getAttribute; attr(属性名称)-获取属性的值;;attr(属性名称,属性值)-为属性名称赋值;
attr(): 获取/设置元素的属性
removeAttr():删除属性
prop():获取/设置元素的属性
removeProp():删除属性
操作固有属性,建议使用prop;操作自定义元素,使用attr
class属性操作:
addClass(),removeClass(),css()
addClass(值) === attr(“class”,值)
removeClass(class值) === removeAttr(“class值”)
css() ==== js对象.style.属性
css(css属性名) 获取css属性名称对应值
css(css属性名,值) 设置css样式
addClass():添加class属性值
removeClass():删除class属性值
toggleClass():切换class属性
css():$("#one").css("backgroundColor", "skyblue")-通过css方法设置id为one的北京颜色设置为蓝色;
CRUD操作
append();父元素将子元素追加到末尾;对象1.append(对象2): 将对象2添加到对象1元素内部,并且在末尾
prepend():父元素将子元素追加到开头;对象1.prepend(对象2):将对象2添加到对象1元素内部,并且在开头
appendTo():对象1.appendTo(对象2):将对象1添加到对象2内部,并且在末尾
prependTo():对象1.prependTo(对象2):将对象1添加到对象2内部,并且在开头
after():添加元素到元素后边;对象1.after(对象2): 将对象2添加到对象1后边。对象1和对象2是兄弟关系
before():添加元素到元素前边;对象1.before(对象2): 将对象2添加到对象1前边。对象1和对象2是兄弟关系
insertAfter():对象1.insertAfter(对象2):将对象1添加到对象2后边。对象1和对象2是兄弟关系
insertBefore():对象1.insertBefore(对象2): 将对象1添加到对象2前边。对象1和对象2是兄弟关系
remove():移除元素;对象.remove():将对象删除掉
empty():清空元素的所有后代元素;对象.empty():将对象的后代元素全部清空,但是保留当前对象以及其属性节点
1.8 jQuery动画、遍历、事件绑定
参考资料:https://blog.csdn.net/m0_37989980/article/details/104197931
动画:三种方式显示和隐藏元素
默认显示和隐藏方式:
show([speed,[easing],[fn]])
hide([speed,[easing],[fn]])
toggle([speed],[easing],[fn])
speed表示动画速度,可用3个预定义的值slow、norma、fast或表示动画时长的毫秒数值
easing用来指定切换效果,默认swing,可用参数linear.swing表示先慢,中间快,最后慢。swing表示匀速。可省略
fn表示动画完成时执行的函数,每个元素执行一次,可省略
滑动显示和隐藏方式
slideDown([speed],[easing],[fn])
slideUp([speed,[easing],[fn]])
slideToggle([speed],[easing],[fn])
淡入淡出显示和隐藏方式
fadeIn([speed],[easing],[fn])
fadeOut([speed],[easing],[fn])
fadeToggle([speed,[easing],[fn]])
遍历:jQuery对象本身就是数组,通过选择器获取的都是满足该选择器条件的元素对象的数组,因为常常需要对jQuery对象进行遍历
JS遍历方式:for(初始化值;循环结束条件;步长)
jQuery遍历方式:jq对象.each(callback回调函数);$.each(object,[callback]) {jQuery专属的遍历方式,针对jQuery全局对象的each方法};for..of(例如:for 元素对象 of 容器对象);
jq遍历语法:jq对象.each(function(index,element){}); index是索引,element是数组内的元素对象,this是集合中的每一个元素;回调函数返回值为false,结束整个循环,返回true,结束本次循环,继续下次循环.
事件绑定:
事件名称:blur(事件源失去焦点),click(单击事件),change(内容改变),keydown(所有键盘按键按下),keypress(部分键盘案件按下),keyup(键盘抬起),mouseover(鼠标悬停),mouseout(鼠标离开)
标准绑定方式:jq对象.事件方法(回调函数)
on绑定事件:jq对象.on("事件名称",回调函数)
off解除绑定:jq对象.off("事件名称") 如果off方法不传递任何参数,则将组件上的所有事件全部解绑
事件切换:jq对象.toggle(fn1,fn2...),单击jq对象对应的组件,会先执行fn1,后续执行fn2...
1.9 XML简介,语法,约束,解析
简介:XML是可扩展标记型语言.可自定义标签,可使用标签来操作
用途:可显示数据,主要用于存储数据
应用:常用于配置文件
语法
后缀:.xml
文档声明:<?xml version="1.0" encoding="gbk"?> ,必须放在第一行第一列.version表示xml版本,encoding表示XML编码
元素定义(标签):标签必须有开始和结束;标签无内容,可在标签内结束;必须合理嵌套;只能有1个根标签;会将空格和空行当作内容解析;
定义属性:一个标签可以有多个属性;属性名不可相同;属性名称和属性值用=连接,属性名称用单引号或双引号
注释:<!--注释内容-->,注释不可放在第一行,不可嵌套
特殊符号:%gt;(大于) %lt;(小于
CDATA区域:解决多个字符都需要转义的操作;内容放到CDATA中,可直接输出,<![CDATA[内容]]>
PI指令:在XML中设置样式;写法:<?xml-stylesheet type="text/css" href="css的路径"?>;只对英文标签有作用
XML约束
约束产生原因:统一XML文件格式
XML约束定义:XML技术中,编写文档/文件约束一个XML文档的书写规范
DTD约束
编写步骤:创建.dtd文件;XML中有多少元素,DTD文件中就写几个<!ELEMENT>;复杂元素有子元素<!ELEMENT 元素名称 (子元素)>,简单元素没有子元素<!ELEMENT 元素名称 (#PDDATA)>;xml中引入.dtd
xml中dtd引入方式
引入外部dtd约束:<!DOCTYPE person SYSTEM "user.dtd">
引入内部dtd约束:<!DOCTYPE person[<!ELEMENT person(name,age)> <!ELEMENT name(#PCDATA)> <!ELEMENT age(#PCDATA)>]>
引入外部网络dtd约束:<!DOCTYPE 根元素 PUBLIC "dtd名称" "dtd文档的url">
使用DTD定义元素
语法:<!ELEMENT 元素名 约束>
简单元素:<!ELEMENT 元素名 约束>。例如:<!ELEMENT name (#PCDATA)>。约束可选:(!PCDATA)约束元素是字符串,EMPTY 约束元素为空,ANY 约束任意元素
复杂元素:<!ELEMENT student (name+,age?,sex*)>;+:表示一次或者多次,?:表示零次或者一次,*:表示零次或者多次;子元素使用逗号隔开表示元素出现的顺序;子元素使用|隔开表示元素只能出现其中1个
DTD定义属性
语法:<!ATTLIST 元素名称 属性名称 属性类型 属性的约束>
属性类型
字符串:CDATA;例如:<!ATTLIST name ID1 CDATA #REQUIRED>
枚举:(aa|bb|cc);例如:<!ATTLIST age ID2 (19|20|21) #IMPLIED>
ID:值只能字母或下划线开头;例如:<!ATTLIST name ID3 ID #FIXED "n1">
属性约束
#REQUIRED: 属性必须存在;#IMPLIED: 属性可有可无;#FIXED: 表示一个固定值(属性的值必须是此固定值);直接值:不写属性使用直接值,写属性使用设置的值。
定义实体
语法:<!ENTITY 实体名称 "实体的值"> eg:<!ENTITY NAME "zy">
使用实体:&实体名称;实义实体写在内部的dtd中
schema约束
概述:scheam以为.xsd为后缀,符合XML用法,一个xml可以有多个schema,用名称控件区分,支持多种数据类型,限制更加严格
文件开头属性:
xmlns=“http://www.w3.org/2001/XMLSchema”表示当前xml文件是约束文件;引入文件方式:targetNamespace="被引入的约束文件地址";
elementFormDefault=“qualified”表示质量良好
编写步骤:
xml中有多少元素,就写多少元素;简单元素:写在<sequence><element name="name",type="string"/><sequence/>里面;复杂元素:<complexType><sequence>元素内容<sequence/><complexType/>
xml引入xsd约束
zy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 表示该文件时是被约束文件
xmlns="http://www.sunny.com/20191229 " 表示约束文件里的 targetNamespace
xsi:schemaLocation=“http://www.sunny.com/20191229 zy.xsd” targetNamespace+空格+约束文档的路径地址
复杂元素指示器
<sequence>:表示元素的出现顺序;
<all>:表示元素只出现1次;
<choice>:表示元素只能出现其中一个;
<maxOccurs=“unbounded”>:表示元素出现的次数,unbounded表示不限制次数
<any> 任意元素
约束属性
位置:复杂元素里面的 </complexType> 之前
<attribute name="id1" type="int" use="required"></attribute> name表述属性名称,type表述属性类型,uee表示属性是否必须出现required
XML解析简介
DOM解析:标签属性文本封装成对象,方便增删改操作,消耗内存,可能会造成内存溢出
SAX解析:一行一行解析,方便查询,不占内存,无法实现增删改
解析器
无论那种解析方式,都是通过api方式提供的
dom4j(DOM和SAX都支持,开发使用最多)
Jsoup(java的heml解析器,可直接解析URL地址、html内容)、
Jaxp(sun公司推出的DOM和SAX解析器)
jdom(jdom组织提供的DOM和SAX解析器)
常见题目汇总
XML是什么:XML是可扩展标记型语言,可根据实际需要扩展XML,可轻松自定义标签,而在HTML等其他标记语言中必须使用预定义的标签。XML主要用于两系统之间的数据传输,例如企业级应用客户端和服务端。
DTD和XML Scheam的区别:DTD非XML文件,XML Schema本身就是xml文件,因此可以用XML解析工具来进行解析;XMLSchema设计在DTD之后,支持更多的类型来映射XML不同的数据类型。DTD即文档类型描述,是定义XML文件结构的传统方式
XPath是什么:是从XML文件检索元素的XML技术,XML文档是结构化的,因此XPath可以从XML文件定位和检索元素、属性或值。
XSTL是什么:常用的XML技术,用于将XML文件转换为另一种XML、HTML或其他格式。
良好格式的XML:意味这XML文件在语法格式上正确,例如只有1个根元素,所有开放标签合适的闭合,属性值必须添加引号等。
XML命名空间是什么:与java的package类似,用来避免不同来源相同名称标签的冲突。XML命名空间在XML文档顶部使用xmlns属性定义,语法为xmlns:prefix="URI"
★★DOM和SAX解析器的区别:主要在于解析XML的方式,DOM解析器是将XML以树形结构的方式加载到内存中,方便增删改操作,但是消耗内存;SAX解析器是事件驱动的解析器,一行一行解析,方便查询,不占内存,但是无法实现增删改。
XML CDATA是什么:指字符数据,CDATA部分不会被解析器解析,解决多个字符需要转义的操作,将内容放到CDATA中可直接输出。<![CDATA[输出内容]]>
java中XML数据绑定是什么:指从XML文件创建类和对象,使用java修改XML文档。绑定方式:XML绑定的java API,JAXB提供了绑定XML文件和java对象遍历方式,另一种方式为使用开源库,例如XML Beans。java中xml绑定的最大优势在于利用java创建和修改xml文档。
1.10 XML解析-Jaxp解析器
所属包路径:javax.xml.parsers
DOM解析器涉及类:DocumentBuilderFactory 解析器工厂类、DocumentBuilder 解析器类
DOM解析XML:
创建解析工厂 DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
创建解析器 DocumentBuilder builder = builderFactory.newDocumentBuilder();
解析XML,返回document Document document = builder.parse("src/person.xml");
针对document处理方法
getElementsByTagName(String tagname) 返回一个标签集合 NodeList;例如:NodeList list = document.getElementsByTagName("p1");
createElement(String tagName) 创建一个标签
createTextNode(String data) 创建文本
appendChild(Node newChild) 把节点添加到标签下
removeChild(Node oldChild) 删除节点
getParentNode() 获取父节点
NodeList处理方法
getLength() 得到集合的长度
item(int index) 下表取到具体的值
getTextContent() 得到标签里的内容
SAX解析器射击类:SAXParserFactory 解析器工厂类、SAXParser 解析器类
创建解析器工厂 SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
创建解析器 SAXParser saxParser = saxParserFactory.newSAXParser();
执行parse方法 saxParser.parse("src/zy.xml", new MyDefaultHandler()); MyDefaultHandler 是继承DefaultHandler的class,重写了startElement、characters、endElement方法,分别表示解析到开始标签、解析到文本、解析到结束标签
1.11 XML解析-Jsoup解析
概念:java的html解析器,可解析谋和url地址、html文本内容
使用:导入jar包、获取Document对象、获取对应标签的element对象、获取数据
Jsoup对象:工具类,解析html或xml文档,返回Document
获取Document对象:parse(File in, String charsetName):解析xml或html文件的;parse(String html):解析xml或html字符串;parse(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象
通过document获取对应的element对象:
getElementById(String id);通过id属性值获取唯一的element对象
getElementsByTag(String tagName);根据标签名称获取元素对象集合
getElementsByAttribute(String key);根据属性名称获取元素对象集合
getElementsByAttributeValue(String key, String value);根据属性名称和属性值获取元素对象集合
String attr(String key); 根据属性名称获取属性值
String text();获取文本内容
String html();获取标签体的所有内容
Node:Document和Element的父类
快捷查询方式:select(String cssQuery);此方法是通过document对象调用
XPath:通过JXDocument的seln方法("XPath")来操作。new JXDocument(document)
1.12 Dom4j解析器
基本用法
导入Jar包
获取Document对象:new SAXReader().read(url);document的父接口为Node
document常用方法:getRootelEment();获取根节点,返回值类型为Element
Node是element的父接口
getParent()获取父节点
addelement()添加标签
element(name);获取标签下第一个标签名称为name的标签
elements(name)获取标签下标签名称为name的所有子标签
elements() 获取标签下面所有一层子标签
使用dom4j查询操作
创建解析器 SAXReader saxReader = new SAXReader();
创建Document对象 Document document = saxReader.read("XXX.xml");
使用getRootElement获取根节点,返回Element Element element document.getRootelEment();