前端部分(一)XML基础

简介XML是一种可扩展标记性语言,标签名可自定义。用途:html主要用于显示数据,xml主要用于存储数据xml的文档声明<?xml version="1.0" encoding="gbk" ?> gbk\utf-8xml中的空格和换行都会被当成内容解析,需注意代码格式注释<!--代码-->转义字符(包含分号)字符书写形式&&am...
摘要由CSDN通过智能技术生成

简介

XML是一种可扩展标记性语言,标签名可自定义。
用途:html主要用于显示数据,xml主要用于存储数据
xml的文档声明
<?xml version="1.0" encoding="gbk" ?> gbk\utf-8
xml中的空格和换行都会被当成内容解析,需注意代码格式
注释<!--代码-->

转义字符(包含分号)

字符 书写形式
& &amp分号
< &lt分号
/> &gt分号
" &quot分号
'分号

CDTAT区

<![CDATA[代码]]>
CDATA区中的代码不需要另外进行转义

PI指令可以设置xml样式

<?xml-stylesheet type="text/css" href="css的路径" ?>

xml的约束

dtd约束和schema约束
dtd文件

  • 复杂标签元素<!ELEMENT 元素名(子元素)>
    子元素可以用 | 或,隔开
    符号“|”仅出现其中一个元素
    符号“,”元素需按顺序出现
  • 简单标签元素<!ELEMENT 元素名 (#PCDATA)>
代码 代表内容
(#PCDATA) 字符串类型
EMPTY
ANY 任意

元素多次出现,元素名后加符号

符号 出现次数
+ 一次或多次
? 零次或一次
* 零次或多次

xml文件中引入dtd文件

<!DOCTYPE 根元素名称 SYSTEM "dtd文件路径">
<!DOCTYPE 根元素名称 [dtd代码] >
<!DOCTYPE 根元素名称 PUBLIC "dtd名称" "dtd文档的url">

约束属性
语法<!ATTLIST 元素名称 属性名称 属性类型 属性的约束>
属性类型
CDATA--------字符串
枚举-------------(aa|bb|cc)
属性约束

  • #REQUIRED:属性必须存在
  • #IMPLIED:属性可有可无
  • #FIXED:属性的值为固定
  • 直接值:有这个属性就是这个值,没这个属性

实体的定义

语法<!ENTITY 实体名称 “实体的值”>
举例:
<!ENTITY TEST "HAHAH">
使用实体 &实体名称; &TEST

schema约束

符合xml语法,一个xml中可以有多个schema,schema支持更多的数据类型。

<element name="根节点">
	<complexType>
		<sequence>
			<element name="" type="" ></element>
			<element name="" type="" ></element>
		</sequence>
	</complexType>
</element>

xml的解析

dom和sax解析

  • dom在内存中分配树形结构,每部分都封装成对象,
    优点:方便增删改操作
    缺点:文件过大时,会造成内存溢出
  • sax采用事件驱动,边读边解析,不会造成内存溢出
    优点:不会造成内存溢出
    缺点:不能实现增删改操作

使用jaxp实现查询节点操作

		//创建解析器工厂
		DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
		//通过解析器工厂创建解析器
		DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
		//解析器解析目标xml文件
		Document document = documentBuilder.parse("src/1.xml");
		//document文件获取标签为na
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值