XML学习笔记

 Xml简单的历史介绍

 

1969 gml(通用标记语言) [主要的目的是要在不同的机器进行通信的数据规范]

1985 sgml(标准通用标记语言)

1993 html (www网)

Html语言本身是有一些缺陷的

(1)   标记不能自定义

<html>

<table>

<hsp></hsp>

</table>

</html>

(2)   html本身缺少一些含义

<h1>水浒英雄</h1>

<table>

<tr><td>宋江</td><td>及时雨</td></tr>

</table>

(3)   html本身没有真正的国际化

 

 

 

html->xhtml->xml

 

1998 xml

Xml : extensiable markup language 可扩展标记语言

 

  为什么要学习xml

(1)   需求

(2)   做配置文件

(3)   xml文件还可以描述很复杂的数据关系

比如 家谱…

  Xml的常见应用

(1)   数据传送通用格式

(2)   配置文件

(3)   充当小型数据库

  Xml语法

入门案例: 用xml来记录一个班级信息

<?xml version="1.0"encoding="gb2312"?>

<class>

<stu id="a001">

<name>杨过</name>

<sex>男</sex>

<age>30</age>

</stu>

<stu id="a002">

<name>李莫愁</name>

<sex>女</sex>

<age>20</age>

</stu>

</class>

 

 

☞ 编码问题:

ansi 编码 是 american national standard insititu 美国国家标准协会 ,

ansi 编码在不同的国家不一样的 ansi ->gb2312 anis-gbk big5

日本 ansi->日文操作系统默认的编码.

 

  xml的语法

(1)   文档声明

<?xml version=”1.0” encoding=”编码方式” standalone=”yes|no”?>

(2)   一个xml 文档中,有且只有一个根元素

 

元素==标签==节点

(3)   在xml中

<name>xiaoming</name>

不等价与==

<name>

xiaoming

</name>

(4) 属性值用双引号(")或单引号(')分隔(如果属性值中有',用"分隔;有",用'分隔)

特别说明: 如果属性值有单引号,有双引号,则需要使用实体:html->&nbsp; &copy;

 

&lt;

&gt;

&amp;

&

&quot;

"

&apos;

'

 

 

<stuid="a&quot;0&apos;0&apos;1">

<name>杨过</name>

<sex>男</sex>

<age>30</age>

</stu>

 

(4)   CDATA节

有时我们希望传递一些特殊字符, <>@!#$%^&*( 可以使用 CDATA节包括

基本用法:

<intro><![CDATA[这个是好$$128qw8o8<Lk;>;akdf0sa98u329408><<K>>>学生]]></intro>

 

面试题:

问; 如何适用xml 去传递小图片

答: 可以把文件读取成一个   byte[] ,然后放到 CDATA节,再传递.

 

(5)   处理指令

 

看一个案例:

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

<?xml-stylesheet href="my.css"type="text/css"?>

<class>

<!--学生信息-->

<stuid="a&quot;0&apos;0&apos;1&lt;" >

<name>杨过</name>

<sex>男</sex>

<age>30</age>

</stu>

<stu id="a002">

<name>李莫愁</name>

<sex>女</sex>

<age>20</age>

</stu>

</class>

 

my.css

name{

 font-size:100px;

 font-weight:bold;

 color:red;

}

sex{

 font-size:50px;

 font-weight:bold;

 color:blue;

}

age{

        font-size:20px;

 font-weight:bold;

 color:green;

}

 

  xml语法小结:

XML声明语句

<?xml version="1.0"encoding="gb2312"?>

–  必须有且仅有一个根元素

–  标记大小写敏感

–  属性值用引号

–  标记成对

–  空标记关闭

–  元素正确嵌套

–  名称中可以包含字母、数字或者其它字符

–  名称中不能含空格 测

–  名称中不能含冒号(注:冒号留给命名空间使用) 测

 

 

  dtd

基本概念: dtd ( document type definition 文档类型定义),该文件一般和xml文件配合使用, 主要的用处是约束 xml, 除了 dtd 技术外, 还有一个schema的技术也可以用于约束xml文件的书写规范.

现在请看一个问题:

 

<stuid="a&quot;0&apos;0&apos;1&lt;" >

<name>杨过</name>

<sex>男</sex>

<age>30</age>

<介绍>我是好人</介绍>

<面积>100</面积>

</stu>

 

怎么解决xml过于自由的问题:->dtd

xml 和 dtd关系

 

快速入门案例:

基本语法是:

<!ELEMENT元素名 类型>

 

 

xml:

 

<?xmlversion="1.0" encoding="utf-8"?>

<!--引入dtd去约束该xml文件-->

<!DOCTYPE班级 SYSTEM"myClass2.dtd">

<班级>

       <学生>

              <名字>周星驰</名字>

              <年龄>23</年龄>

              <介绍>学习刻苦</介绍>

       </学生>

       <学生>

              <名字>林青霞</名字>

               <年龄>32</年龄>

              <介绍>是一个好学生</介绍>

       </学生>

</班级>

 

myClass2.dtd

<!ELEMENT班级 (学生+)>

<!ELEMENT学生 (名字,年龄,介绍)>

<!ELEMENT名字(#PCDATA)>

<!ELEMENT年龄(#PCDATA)>

<!ELEMENT介绍(#PCDATA)>

 

完成校验的html

<html>

<head>

<!--自己编写一个简单的解析工具,去解析xml dtd 是否配套-->

<scriptlanguage="javascript">

<!--

       var xmldoc = newActiveXObject("Microsoft.XMLDOM");

       xmldoc.validateOnParse ="true";//开启校验

       xmldoc.load("myClass2.xml");//指定校验哪个xml文件

       document.writeln("错误信息是:"+xmldoc.parseError.reason+"<br/>"); 

       document.writeln("错误的行是:"+xmldoc.parseError.line);

 

//-->

</script>

</head>

<body>

</body>

</html>

 

u  dtd的细节

(1)   dtd 的分类

内部 dtd

外部 dtd

 

内部DTD文档

       <!DOCTYPE根元素  [定义内容]>

外部DTD文档

       <!DOCTYPE根元素  SYSTEM "DTD文件路径">

(2)   在xml中引入dtd 有两种方法

1.      引入本地 dtd

<!DOCTYPE根元素 SYSTEM ‘地址’>

2.      引入公共的 dtd

<!DOCTYPE根元素PUBLIC  ‘地址’>

 

(2)

<!ELEMENT 元素名 类型>

类型:

EMPTY, ANY , #PCDATA

(3)   dtd的修饰符

 

(4)   属性的细节

 

基本语法

<!ATTLIST元素名

属性名类型 特点

.....

l  类型有 五种:

CDATA 表示可以放入文本

ID   表示属性的值,不能重复,同时不要用数字开头.

IDREF/IDREFS   当一个元素的属性值,需要去引用另外一个ID ,则使用IDREF,如果希望引用多个,则使用IDREFS,请用空格隔开.

Enumerated 表示属性的值,只能是例举出了比如

<!ATTLIST学生

   地址 CDATA #FIXED "北京"

   学号 ID #REQUIRED

   大哥 IDREFS #REQUIRED

   性别 (男|女) #REQUIRED

ENTITY

 

 

 

l  属性的特点有四种

#REQUIRED  表示必须有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
某学校拟使用XML文件制定一个学生(含已毕业学生)信息文档,该文档描述其学校内学生的管理信息。 1、 选用合适的编辑器,编写一个XML文件,应至少包括下述信息内容: 学生目录下应该包括: (1) 所有学生的共有信息班级的名字、专业、类别等 (2) 学生 学生1 学生基本信息(学生姓名、性别、学号、年龄) 入学信息(入学时间、辅导员名) 班级内学生生源信息( 生源1:(生源地名称、联系方式等信息) 生源2: 生源n: ) 毕业信息(毕业时间、毕业数量、辅导员名) 学生2 学生3 。。。。。 学生N (3)辅导员 辅导员1(辅导员姓名、联系 方式、职位、管理的班级名) 辅导员2 2、针对该XML文件,画出其相应的树状结构图。 3、针对所编写XML文件,编写其相应的DTD文件,并使用解析器验证其有效性,对验证结果抓图。 4、针对所编写XML文件,编写合适的XSL文件,将学生基本信息打印成表格,并用ie浏览器进行浏览并截图。 5、使用JAVA编程语言,对XML文件进行解析: 显示该xml文件的所有节点、属性的名字; 同时显示该xml文件所有标记的文本数据; 计算学生的入学平均年龄并进行输出。 要求:1)xml文件中应该包括文本内容、标记、属性、命名空间,混合标记等的内容 2)dtd文件应该有相应的结果抓图 3)xsl文件应用到规范中的常用技巧,例如模板调用、for-each、value-of、xsl标记等。 4)解析器结果应该有抓图。 5)形成的代码交老师验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值