什么是XML?
w3c推出xml技术本来是想要替代html,然而一直没有成功,结果是过渡诞生了xhtml技术。

XML常见应用

**

XML语法

编码乱码问题
如下一段XML代码:

<?xml version="1.0" encoding="utf-8" ?>
<xml><![CDATA[<b><a>中国</a></b>        ]]><b><a>美国</a><a>小日本</a></b>
</xml>

如果用记事本这段XML代码,保存的时候默认是ANSI编码方式保存,然而代码中encoding="utf-8"指定浏览器用utf-8编码去解析,所以这样会导致在浏览中出现乱码。为什么在eclipse等工具中可以正常,那是因为eclipse中新建xml文件保存的时候默认会和encoding的指定的编码方式一致。

Tip:处理指令

  • 处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。

  • 例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。 <?xml-stylesheet type=”text/css” href=”1.css”?>

  • 处理指令必须以“<?”作为开头,以“?>”作为结尾,XML声明语句就是最常见的一种处理指令。

XML约束

DTD,全称为文档类型定义

文件清单:book.dtd

<!ELEMENT 书架 (书+)><!ELEMENT 书 (书名,作者,售价)><!ELEMENT 书名 (#PCDATA)><!ELEMENT 作者 (#PCDATA)><!ELEMENT 售价 (#PCDATA)>

文件清单:book.xml

<?xml version="1.0" ?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架><书><书名>Java就业培训教程</书名><作者>张孝祥</作者><售价>39.00元</售价></书><书><书名>JavaScript网页开发</书名><作者>张孝祥</作者><售价>28.00元</售价></书>
</书架>

DTD语法细节:元素定义1

  • 在DTD文档中使用ELEMENT声明一个XML元素,语法格式如下所示:
    <!ELEMENT 元素名称 元素类型>
  • 元素类型可以是元素内容、或类型
    • 如为元素内容:则需要使用()括起来,如
      <!ELEMENT 书架 (书名,作者,售价)>
      <!ELEMENT 书名 (#PCDATA)>
    • 如为元素类型,则直接书写,DTD规范定义了如下几种类型:
      EMPTY:用于定义空元素,例如<br/> <hr/>
      ANY:表示元素内容为任意类型。

DTD语法细节:元素定义2

  • 元素内容中可以使用如下方式,描述内容的组成关系

    • 用逗号分隔,表示内容的出现顺序必须与声明时一致。<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>
    • 用|分隔,表示任选其一,即多个只能出现一个
      <!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>
    • 元素内容使用空白符分隔,表示出现顺序没有要求:<!ELEMENT MYFILE (TITLE AUTHOR EMAIL)> *
  • 在元素内容中也可以使用+、*、?等符号表示元素出现的次数:
    +: 一次或多次 (书+)
    ?: 0次或一次 (书?)
    : 0次或多次 (书)
  • 也可使用圆括号( )批量设置,例
    <!ELEMENT MYFILE ((TITLE*, AUTHOR?, EMAIL)* | COMMENT)>

XML编程(CRUD)

CRUD:create、read、update、delete

XML解析方式分为两种:dom和sax
dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式。
(1. dom解析的优点是对文档crud比较方便,缺点是占用内存比较大)
sax: (Simple API for XML) 不是官方标准,但它是 XML 社区事实上的标准,几乎所有的 XML 解析器都支持它。
(2. sax解析的优点是占用内存少,解析速度快,缺点是只适合做文档的读取,不适合做文档的crud)

XML解析器
Crimson、Xerces 、Aelfred2

XML解析开发包
Jaxp、Jdom、dom4j

方立勋_30天掌握JavaWeb_XML相关推荐

  1. 方立勋_30天掌握JavaWeb_Servlet Filter(过滤器)未完

    Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片 ...

  2. 方立勋_30天掌握JavaWeb_自定义标签

    自定义标签主要用于移除Jsp页面中的java代码. 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 编写一个实现Tag接口的Java类(标签处理器类). 编写标签库描述符(tl ...

  3. 方立勋_30天掌握JavaWeb_JSP

    JSP运行原理 JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写htm ...

  4. 方立勋_30天掌握JavaWeb_response

    response的outStream输出数据的问题 原因: 解决方法一: //程序以什么码表输出了,程序就一定要控制浏览器以什么码表打开 response.setHeader("Conten ...

  5. 方立勋_30天掌握JavaWeb_Servlet事件监听器

    监听器 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. 监听器典型案例:监听wind ...

  6. 方立勋_30天掌握JavaWeb_自己编写jdbc框架、dbutils框架(未完)

    元数据:数据库.表.列的定义信息. Connection.getDatabaseMetaData() DataBaseMetaData对象 getURL():返回一个String类对象,代表数据库的U ...

  7. 方立勋_30天掌握JavaWeb_JDBC、连接池、JNDI(三)

    使用数据库连接池优化程序性能 缺点:用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的 ...

  8. 方立勋_30天掌握JavaWeb_JDBC、存储过程、事务(二)

    使用JDBC处理大数据 在实际开发中,程序需要把大文本或二进制数据保存到数据库. 基本概念:大数据也称之为LOB(Large Objects),LOB又分为: clob和blob 1. clob用于存 ...

  9. 方立勋_30天掌握JavaWeb_jdbc实现客户关系管理(未完)

    搭建开发环境 1.1 导入开发包 jstl开发包 mysql驱动 beanutils开发包 log4j 1.2 建立程序包 cn.itcast.domain cn.itcast.dao cn.itca ...

最新文章

  1. 应用交换技术的负载均衡算法
  2. 最新版GMP规范全文
  3. Wiki系统分析比较
  4. 让数字校园走向云端【我身边的戴尔企业级解决方案】
  5. python 布尔值为f我的_python – 为什么我没有得到布尔值?
  6. 需求管理是CMM可重复级中的6个关键过程域之一,其主要目标是__________。A.客观地验证需求管理活动...
  7. 要学好linux运维请从排版画图开始
  8. 12.混淆——混叠图像,对比敏感度,图像压缩_4
  9. win32开发(添加菜单)
  10. 32位的tetview and medit 在64bit的linux运行,有很多32bit的库没有安装,错误不断之解决办法。
  11. [Mongodb]安装与启动
  12. Verilog初级教程(17)Verilog中的case语句
  13. vos3000防火墙规则
  14. Django报错异常django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without
  15. Pygame详解(九):mixer 模块
  16. 零刻数据提供多地优质BGP双线接入服务
  17. https生成根证书、服务证书
  18. MySQL通过sql语句获取当前日期|时间|时间戳
  19. CAN通讯协议层--秉火STM32学习笔记
  20. 操作系统学习笔记-虚拟内存

热门文章

  1. kafka0.8消费者实例
  2. MySQL的事务与事务隔离
  3. ClientDataSet建立索引和排序
  4. HTML5事件——contextmenu 隐藏鼠标右键菜单
  5. Sql Server 2005如何设置连接加密
  6. hdu3033---加限制条件的0-1背包
  7. MySQL存储引擎、MyISAM、InnoDB
  8. org.apache.hadoop.hbase.NotServingRegionException: hbase:meta,,1 is not online问题(暂时没有解决)
  9. python操作string类型的key的代码
  10. 是否使用wraps的區別