码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWeb之XML

时间:2018-12-11 19:57:27      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:获取   指定   子节点   关键字   jdom   必须   基本   包含   amp   

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

标签:获取   指定   子节点   关键字   jdom   必须   基本   包含   amp   

原文地址:http://blog.51cto.com/13559120/2329063

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!