方立勋_30天掌握JavaWeb_XML
什么是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 、Aelfred2XML解析开发包
Jaxp、Jdom、dom4j
方立勋_30天掌握JavaWeb_XML相关推荐
- 方立勋_30天掌握JavaWeb_Servlet Filter(过滤器)未完
Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片 ...
- 方立勋_30天掌握JavaWeb_自定义标签
自定义标签主要用于移除Jsp页面中的java代码. 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 编写一个实现Tag接口的Java类(标签处理器类). 编写标签库描述符(tl ...
- 方立勋_30天掌握JavaWeb_JSP
JSP运行原理 JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写htm ...
- 方立勋_30天掌握JavaWeb_response
response的outStream输出数据的问题 原因: 解决方法一: //程序以什么码表输出了,程序就一定要控制浏览器以什么码表打开 response.setHeader("Conten ...
- 方立勋_30天掌握JavaWeb_Servlet事件监听器
监听器 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. 监听器典型案例:监听wind ...
- 方立勋_30天掌握JavaWeb_自己编写jdbc框架、dbutils框架(未完)
元数据:数据库.表.列的定义信息. Connection.getDatabaseMetaData() DataBaseMetaData对象 getURL():返回一个String类对象,代表数据库的U ...
- 方立勋_30天掌握JavaWeb_JDBC、连接池、JNDI(三)
使用数据库连接池优化程序性能 缺点:用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的 ...
- 方立勋_30天掌握JavaWeb_JDBC、存储过程、事务(二)
使用JDBC处理大数据 在实际开发中,程序需要把大文本或二进制数据保存到数据库. 基本概念:大数据也称之为LOB(Large Objects),LOB又分为: clob和blob 1. clob用于存 ...
- 方立勋_30天掌握JavaWeb_jdbc实现客户关系管理(未完)
搭建开发环境 1.1 导入开发包 jstl开发包 mysql驱动 beanutils开发包 log4j 1.2 建立程序包 cn.itcast.domain cn.itcast.dao cn.itca ...
最新文章
- 应用交换技术的负载均衡算法
- 最新版GMP规范全文
- Wiki系统分析比较
- 让数字校园走向云端【我身边的戴尔企业级解决方案】
- python 布尔值为f我的_python – 为什么我没有得到布尔值?
- 需求管理是CMM可重复级中的6个关键过程域之一,其主要目标是__________。A.客观地验证需求管理活动...
- 要学好linux运维请从排版画图开始
- 12.混淆——混叠图像,对比敏感度,图像压缩_4
- win32开发(添加菜单)
- 32位的tetview and medit 在64bit的linux运行,有很多32bit的库没有安装,错误不断之解决办法。
- [Mongodb]安装与启动
- Verilog初级教程(17)Verilog中的case语句
- vos3000防火墙规则
- Django报错异常django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without
- Pygame详解(九):mixer 模块
- 零刻数据提供多地优质BGP双线接入服务
- https生成根证书、服务证书
- MySQL通过sql语句获取当前日期|时间|时间戳
- CAN通讯协议层--秉火STM32学习笔记
- 操作系统学习笔记-虚拟内存
热门文章
- kafka0.8消费者实例
- MySQL的事务与事务隔离
- ClientDataSet建立索引和排序
- HTML5事件——contextmenu 隐藏鼠标右键菜单
- Sql Server 2005如何设置连接加密
- hdu3033---加限制条件的0-1背包
- MySQL存储引擎、MyISAM、InnoDB
- org.apache.hadoop.hbase.NotServingRegionException: hbase:meta,,1 is not online问题(暂时没有解决)
- python操作string类型的key的代码
- 是否使用wraps的區別