初识XML

什么是XML?

XML 指可扩展标记语言(EXtensible Markup Language)。
XML 是一种很像HTML的标记语言。
XML 的设计宗旨是传输数据,而不是显示数据。
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准。

常用的约束技术:XML DTD 和XML Schema
将DTD与XML文档关联的三种形式
DTD约束既可以作为一个单独的文件编写,也可以在XML文件内编写。

使用内部DTD 。<!DOCTYPE 根节点  [DTD的代码]>
使用外部DTD。<!DOCTYPE 根节点 "DTD的地址">
使用网络DTD。<!DOCTYPE 根节点 PUBLIC  "DTD的名称"  "DTD的地址">

xml和HTML的区别?

  •        1.xml标记全是自定义的
    
  •        2.xml的语法严格
    
  •        3.xml是存储数据的  HTML是 展示数据的
    

dtd

实例:
创建 dtd文件
gz.dtd

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT gz (author+)> 
<!ELEMENT author (sa,sb)>
<!ELEMENT sa (#PCDATA)>
<!ELEMENT sb (#PCDATA)>
//定义author 元素 它有name属性, name属性唯一,必填
<!ATTLIST author name ID #REQUIRED>

ELEMENT 声明一个元素
#PCDATA (表明这里是用来写文本的)
ATTLIST 定义元素的属性 ID 唯一值 #REQUIRED 必填项 CDATA 可以重复
创建xml文件
gz.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE gz SYSTEM "gz.dtd">
<gz>
<author name="tgt">
	<sa>a.jsp</sa>
	<sb>s.jsp</sb>
</author>
</gz>

!DOCTYPE 声明
gz (命名 要跟dtd中根节点名相同,不然可能出错)

调用gz.dtd文件 根节点为gz

读取xml文件
1.导入dom4j 架包 dom4j\dom4j-1.6.1.jar
Test.java

package xml;

import java.io.File;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Test {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		SAXReader sax=new SAXReader();//读取
		try {
			Document doc=sax.read(new File("src/gz.xml"));//读取文档
			Element root=doc.getRootElement();//跟节点
			System.out.println("根节点是:"+root.getName());
			List<Element> els= root.elements();//根节点中的子节点 
			for(Element el:els) {
				System.out.println("根节点中的子节点 shi:"+el.getName());
				System.out.println("根节点中的子节点的内容:"+el.getText());
				List<Element> zjds=el.elements();
				for(Element zjd:zjds) {
					System.out.println("子节点中的子节点 shi:"+zjd.getName());
					System.out.println("子节点中的子节点的内容:"+zjd.getText());
				}
			}
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

schema

创建schema文件
schema.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://www.example.org/schema" 
xmlns:tns="http://www.example.org/schema" 
elementFormDefault="qualified">
	<xs:element name="user">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="id" type="xs:int"/>
                <xs:element name="username" type="xs:string"/>
                <xs:element name="time" type="xs:date"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

创建xml
schema.xml

<?xml version="1.0" encoding="UTF-8"?>
<user xmlns:xs="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://www.example.org/schema" 
xmlns:tns="http://www.example.org/schema schema.xml">
          <id>1</id>
          <username>zs</username>
          <time>2021-01-02</time>
 </user>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值