XML学习

xml_概述
什么是xml?
xml是可扩展标记语言(extensible markup language)
自定义的;

xml的作用?
	展示数据(废弃):
	存储数据:
		配置文件使用;
		网路数据交换;

xml_快速入门
xml文档的后缀名?
.xml
第一行内容?
<?xml version='1'?>
1.必须顶头写!!!!
2.标识当前文档是xml文档,并且知名一下版本;

根标签可以有多个吗?
区分大小写么?
	区分!!!!

组成部分
组成部分?
文档声明;
encoding;
不指定,默认使用iso-8859-1;
standalone;
指令(了解);
标签;
属性;
文本;

xml中怎么写 类似于java代码的特殊文本?
<![CDATA[数据]]>
xml_约束概述
约束有什么用?
规定xml文档中可以些什么!!!!
学习约束的目的?
重点:
在xml中,如何引入约束文档

约束_dtd
如何引入外部dtd文档?

约束_schema 英 /'skiːmə/
dtd约束的缺点?
只能对标签、属性做这种粗粒度的约束;
但是不能对值做限定;

如何引入schema约束?
	<students   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns="http://www.itcast.cn/xml"
		xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"
	>

XML思维导图
XML 解析

1.xml_解析_解析方式
1.1什么是DOM解析?
一次性的把文档的内容全部加载进内存,形成DOM树,可以完成增删改查四种操作;
缺点:
占用内存很大

1.2什么是SAX解析?
	一次只读取一行,读完就释放,占用内存小;
	确点:
		只能读取;

2.解析_常见的解析器
DOM4J;
JSOUP;

1.1Jsoup_快速入门
使用jsoup的步骤?
1.导入jar包;
2.获取xml文件的路径;
3.获取Document对象;
4.通过Document对象获取Element对象;
5.通过Element对象获取它的内容;

1.2_Jsoup_Jsoup对象
parse(String html);
html:文档内容
parse(File file,String charset);
file:
xml文档对应的file对象
charset:
用哪种编码解析xml文档
parse(URL url,int timeOutMillis )
url:
xml文档的网络路径
timeOutMillis:
超时时间

1.2.1Jsoup_Document对象
Document常用方法?
Element getElementById(String id);
Elements getElementsByTag(String tagName);
Elements getElementsByAttribute(String attribute);
Elements getElementsByAttributeValue(String attribute,String value);

1.2.2Jsoup_Element对象
Element常用方法?
Element getElementById(String id);
Elements getElementsByTag(String tagName);
Elements getElementsByAttribute(String attribute);
Elements getElementsByAttributeValue(String attribute,String value);

	attr(String key):获取某个属性的值;
	text():只获取元素的文本内容
	html():获取文本的标签体

1.3Jsoup_根据选择器查询
Elements select(String cssQuery);其中cssQuery应该怎么写?
基础选择器:
id选择器;
#id值
类选择器;
.类名
元素选择器;
元素名
高级选择器:
后代选择器;
选择器1 选择器2
子选择器;
选择器1 > 选择器2
并集选择器;
选择器1,选择器2
属性选择器;
元素名[属性名]
元素名[属性名=“属性值”]
伪类选择器;
元素名:状态

1.4Jsoup_根据Xpath查询(了解)
使用步骤?
1.导入xpath的jar包;
2.先构建jsoup的Document对象,根据这个Document对象,再构建JxDocument对象;
3.通过JxDocument获取JxNode;;
4.通过JxNode得到值;

public static void main(String[] args) throws IOException, XpathSyntaxErrorException {

    //1.获取student.xml的path
    String path = JsoupDemo6.class.getClassLoader().getResource("student.xml").getPath();
    //2.获取Document对象
    Document document = Jsoup.parse(new File(path), "utf-8");

    //3.根据document对象,创建JXDocument对象
    JXDocument jxDocument = new JXDocument(document);

    //4.结合xpath语法查询
    //4.1查询所有student标签
    List<JXNode> nodes = jxDocument.selN("//student");
    JXNode stuNode = nodes.get(0);//heima_0001

// System.out.println(stuNode);

    /*
        //gender:
            使用//可以定位到xml文档的根标签,然后在全文中检索名字为gender的标签(必须是当前结点的后代结点),
        /gender:
            找当前节点的儿子们,如果是名字是gender,就能找到。
     */

    /*List<JXNode> genders = stuNode.sel("/gender");
    System.out.println(genders);*/
    /*List<JXNode> genders = stuNode.sel("//gender");
    System.out.println(genders);*/

    List<JXNode> genders = stuNode.sel("/age/name/gender");
    System.out.println(genders);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值