JavaWeb之XML

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb之XML相关的知识,希望对你有一定的参考价值。

1. XML

可扩展的标记语言
可以用来保存数据
可以用来做配置文件
数据传输

  • 文档声明

    简单声明,version表示解析这个XML文档的解析器版本

    <? xml version="1.0" ?>

    encoding表示编码

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

    standalone表示是否是一个独立文档,no表示依赖其他文档,yes表示是一个独立的文档

    <? xml version="1.0" encoding="utf-8" standalon="no"?>

  • 元素定义

    元素就是标签,文档声明下面的第一个标签为根标签,所有标签必须放置到跟元素里面

    <stus></stus>

  • 普通标签和复杂标签

    普通标签是标签里面包含文本

    复杂标是标签里面嵌套标签

  • 注释

    html文档一样,<!-- -->,不允许放在第一行,必须放在文档声明下面

  • CDATA区

    非法字符

    在XML中,只有字符&lt;&是非法的,省略号、引号和大于号是合法的,但是把它们替换成实体引用是个好习惯

    • &lt

    • &gt

    • &amp

    • &apos

    • &qaot

    如果某段字符串中包含类似标签或者关键字,不想让xml进行解析,可以使用CDATA来包装 <desc><![CDATA[<a href="www.baidu.com">百度一下,你就指定</a>]]></desc>

2.?XML解析

其实就是获取元素里面的字符数据或者属性数据

  • XML解析方式

    有很多种,但是常用的有两种

    DOM 把整个xml全部读到内存中,形成树状结构,整个文档称为document对象,属性对应Attribute对象,所有的元素节点对应Element对象,文本也可以称为Text对象,以上所有节点称为Node节点,如果xml文件过大,会造成内存溢出,可以对文档进行增删操作

    SAX 基于事件驱动,读取一行,解析一行,不可以增删,只能查询

  • 针对这两种解析方式API

    一些组织或者公司,针对以上两种方式,给出的解决方案有哪些

    jaxp sun公司,比较繁琐

    jdom

    dom4j 使用比较广泛

  • Dom4j基本用法
//创建SAX读取对象
SAXReader reader = new SAXReader();
//指定解析源
Document document = reader.read(new File("src/com/kernel/test/demo03.xml"));
//获得根标签
Element rootElement = document.getRootElement();
//获得子标签
Element sonElement = rootElement.element("stu");
//获取所有子标签
List list = rootElement.elements();
//获取标签的属性值
element.element("name").getText()
  • Xpath使用

    nodename 选区此节点的所有子节点

    /:从根节点选取

    //:从匹配选择的当前节点选择文档中的节点,而不考虑位置

    .:选取当前节点

    ..:选取当前节点的父节点

    @:选取属性

3. XML约束

如何让怎么规定文档中的元素只出现一次

DTD

语法自成一体,可读性较差

http://www.runoob.com/dtd/dtd-tutorial.html

Schema

语法和xml一样,xml解析起来比较方便

http://www.runoob.com/Schema/Schema-tutorial.html

以上是关于JavaWeb之XML的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb之XML

JavaWeb之XML

javaweb学习总结十四(xml约束之Schema)

JavaWeb核心之Servlet

JavaWeb核心之Servlet

JavaWeb 之 Filter:过滤器