XML学习

1.什么是xml 与html的区别

1.xml是一种可扩展的标记语言 html是超文本标记语言
2.xml标签没有被预定义 html标签事先规定好
3.xml的作用是存储数据 html的作用是在浏览器显示数据
4.xml的语法严格 html的语法不严格
注!!!!!!!!!!!!!!:xml不是html的替代

2.基本语法

文档后缀名 .xml
第一行必须写文档声明
必须有且只有一个根标签
属性值必须有引号
标签一定要闭合
实体引用:

在这里插入图片描述
注释:在 XML 中,只有字符 “<” 和 “&” 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。

重点:xml区分大小写!!!!!!!!!!!

3.xml文件的组成

1.文档声明:
version 版本号
encoding 编码格式
standalone 是否依赖其他文件 yes/no (现在大部分xml文件都不写)
例:
<?xml version="1.0" encoding="UTF-8" standalone = "no" ?>

2.指令:早期为了干掉html,用来展示数据用(现在一般不写)

3.标签 (一定要有根标签)
4.属性
5.文本
例:

<students>
<student number="01">
    <name>
        <xing>
            迪丽
        <ming>
            热吧
        </ming>
        </xing>
    </name>
    <age>18</age>
    <sex></sex>
</student>
    <student number="02">
        <name>古力娜扎</name>
        <age>18</age>
        <sex></sex>
    </student>
</students>

4.xml文件的约束

在这里插入图片描述根据上图,xml文件又程序员书写,由产品解析,由于xml文件的标签是自定义的,所以需要一个准则来书写标签,不然产品怎么解析?
所以约束的作用就是规范xml文档,由约束告诉程序员应该写什么,怎么写。

4.1两种约束

DTD约束:语法简洁,共能比较单一。
Schema约束:语法复杂,功能比较强大。

4.1.1DTD约束

1.内部约束:约束写在xml文件中,例:

<?xml version="1.0" encoding="UTF-8" standalone = "no" ?>
<!DOCTYPE note [  <!ELEMENT note (to,from,heading,body)>
        <!ELEMENT to      (#PCDATA)>
        <!ELEMENT from    (#PCDATA)>
        <!ELEMENT heading (#PCDATA)>
        <!ELEMENT body    (#PCDATA)>
        ]> //约束文件
<note>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
</note>

2.外部约束
在外面写一个约束文件
在这里插入图片描述
在这里插入图片描述

4.1.2 SChema

约束文件:.xsd

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
<!--显示 schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。同时它还规定了来自命名空间 
"http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs:-->
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">
<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

引用:

<?xml version="1.0"?>
<note
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn note.xsd"> //引用xsd文件
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

命名空间的概念:
xmlns="http://www.w3school.com.cn"定义命名空间
xmlns:a=“http://www.w3school.com.cn” 表示以a为命名空间的别名,不取就默认

5.xml的解析

解析:操作xml文档,将文档中的数据读取到内存中
解析的两种思想:
1.DOM:将标记语言一次性加载进内存,在内存中形成一棵DOM树。(一般用于服务器端)
优点:一次性加载,可以对节点进行增删改查。
缺点:消耗内存
2.SAX:逐行读取,读一行释放一行。基于事件驱动(一般用于手机端)
优点:不占内存
缺点:只能读取,无法进行增删改

6.xml解析器

1.JAXP:sun公司出品的官方解析器,不太好
2.DOM4J 优秀
3.JSoup
4.PULL:安卓操作系统内置,SAX方式

7.JSoup详解

1)JSoup类:提供从各种来源加载和解析HTML文档的方法。
1.1)static Document parse(File in, String charsetName) 将指定的xml文件解析成文档
1.2)static Document parse(String html) 解析文档
1.3)static Document parse(URL url , int timeoutMillis) 通过网络路径解析
2)Document类
3)Element类 (不做介绍 类似于JS中的内容)

8.快捷查询

1)selector 选择器。document.select(符合css规范)
2)XPath:
先要创建一个JXDocument对象https://www.w3school.com.cn/xpath/xpath_syntax.asp

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值