知识点:XML

1.Xml概念

   可扩展标记语言(Extensible Markup Language)

   可以用简单标记(元素、标签)的描述数据。

2.XML优势和作用

   优势: 跨平台、可扩展性、可读性、简单、内容和形式分离。

   作用: 配置文件存储数据、数据交换

3. XML文件组成

   3.1 xml 头信息:声明版本和编码

      <?xml version="1.0" encoding="UTF-8" standalone=”no”?>

Standalone:用于指定XML文档是否依赖于外部的DTD  值:yes / no

Yes:自包含的,不依赖于外部的定义,意味着XML包含了所有必要的信息,不需要引入外部的DTD文件

No:不是自包含,依赖于外部的定义

   3.2 xml 标签元素

      <标签名  属性名=”值”> 内容 </标签名>

      xml标签名可以自定义

4.格式良好xml遵循的规则

   1. Xml声明必须放在第一行。

   2.根元素标签有且只能有一个。

   3.标签必须成对出现。

   4.严格区分大小写。

   5.属性值必须用””引起来

   6.标签必须正确嵌套

  示例: 编写一个存储学生信息的students.xml

<?xml version="1.0" encoding="UTF-8" ?>

<students>

  <student sno="1001">

    <name>小博</name>

    <age>18</age>

    <sex>男</sex>

  </student>

  <student sno="1002">

     <name>马总</name>

     <age>28</age>

     <sex>女</sex>

  </student>

</students>

  注意:students.xml只是一个格式良好xml,但不是一个有效xml.

      有效:xml只能存放student有关的一些标签。--->添加约束

5.有效xml文件

   1. 格式良好

   2. 使用DTD 或 XSD 添加语义约束

6.DTD  文档类型定义  (document type definition或Schema)

  作用:给xml添加约束,保证xml格式正确性和xml文件的有效性

  6.1. 内部DTD语法

<!DOCTYPE  根元素[

   //元素中包含子元素  +:1~n(至少一次)   ?:0~1(最多一次)  *:0~n(多次)

   <!ELEMENT 元素(子元素+?*,子元素...)>

   //元素中包含属性 ,CDATA:字符串类型   #REQUIRED:必须的  

   <!ATTLIST 元素 属性名 CDATA  #REQUIRED>

   //元素中包含内容

   <!ELEMENT 元素(元素名) (#PCDATA)>

]>

  6.2. 外部DTD语法

     (1). 创建dtd文件,编写约束

   //元素中包含子元素

   <!ELEMENT 元素(子元素+?*,子元素...)>  

  //子元素中包含子元素

  <!ELEMNET 子元素 (元素名,.....)||(EMPTY)> //不包含内容(文本值)

【提示:如果标签中没有内容(文本值),用(EMPTY)】

   //元素中包含属性 ,CDATA:字符串类型   #REQUIRED:必须的  

   <!ATTLIST 元素 属性名 CDATA  #REQUIRED>  

   //元素中包含内容

   <!ELEMENT 元素(元素名) (#PCDATA)>

(2). DTD文件引入到xml中       system:本机

     <!DOCTYPE 根元素  SYSTEM ‘xxx.DTD’>

7.XML解析=======》获取xml文件中的内容 (4种)

前两种属于基础方法,是官方提供的平台无关的解析方式

后两种属于扩展方法,是在基础方法上扩展出来的,只适用Java平台

8.DOM4J方式解析XML文件的步骤

   1. 引入dom4j.jar包

      dom4j-1.6.1.jar

  2. 创建解析器SaxReader的对象

     SAXReader sr=new SAXReader();

   3. 读取xml文件,解析成DOM树(Document对象)

      Document doc=sr.read("students.xml");  //解析的xml文件名

   4. (1).获取元素(Element对象)

      Element root=doc.getRootElement();

(2).获取所有的对象(包含属性、文本)

List<Element> list=root.elements();

   5. 元素常用的方法

方法名

描述

getName()

获取元素的名称

elements()

获取所有的子元素

element(String name)

获取指定的子元素

attributeValue(String name)

获取元素指定的属性值

elementText(String name)

获取子元素的文本值  等价于element.getText()

addElement()

添加子元素

addAttribute()

添加属性

addText()

添加文本

提示:

创建空的Document对象

       Document doc = DocumentHelper.createDocument();

       Element root = doc.addElement("members");// 创建根节点

  1. 修改xml文件,重新把Document对象写到xml中

OutputFormat format=OutputFormat.createPrettyPrint();   //规范格式,缩进

XMLWriter xw=new XMLWriter(new FileOutputStream("students.xml"),format );  

先创建XML输出流,再创建文件字节输出流的对象,指定写入的xml文件,并追加规范格式

xw.write(doc);   //写入到Dom树

xw.close();      //关闭流

模拟tomcat容器底层Servlet的实现

步骤:

1.编写一个Servlet的类,写处理请求的Service()方法(servlet接口和实现类)

2.编写web.xml ,配置servlet

3. 写一个核心方法,读取解析web.xml文件(获取配置的访问路径[url]和servlet所在的全限定名[name]),存储到Map集合中     Map<请求路径,Servlet对象>。从控制台输入一个访问路径,通过Map集合的put方法找到web.xml中配置的Servlet对象,创建所有的Servlet对象,调用servlet处理请求service的方法

(1).web.xml的配置和dtd约束

外部DTD约束

(2).核心方法

 (3).请求成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值