XML编程.docx

上传人:b****5 文档编号:29894595 上传时间:2023-08-03 格式:DOCX 页数:71 大小:2.71MB
下载 相关 举报
XML编程.docx_第1页
第1页 / 共71页
XML编程.docx_第2页
第2页 / 共71页
XML编程.docx_第3页
第3页 / 共71页
XML编程.docx_第4页
第4页 / 共71页
XML编程.docx_第5页
第5页 / 共71页
点击查看更多>>
下载资源
资源描述

XML编程.docx

《XML编程.docx》由会员分享,可在线阅读,更多相关《XML编程.docx(71页珍藏版)》请在冰豆网上搜索。

XML编程.docx

XML编程

万能的数据传输格式——XML

目录

万能的数据传输格式——XML1

一、历史起源2

1、发展史2

2、什么是XML2

3、XML与HTML区别3

4、XML应用场景3

5、XML在实际开发中的应用4

二、编写合法的XML4

1、ZendStudio软件使用4

1)软件破解4

2)软件界面5

3)创建工程5

4、软件配置6

2、快速入门9

1)描述人的信息(demo01.xml)9

2)描述书的信息(demo02.xml)11

3、编写合法的XML文档11

1)文档声明11

2.1)元素(标记、节点)11

2.2)元素命名规则:

12

3)元素属性12

4)文档注释12

5)特殊字符13

6)CDATA区段13

7、处理指令PI14

三、XML在GPS导航中的实际应用16

四、DTD约束文档17

1、为什么要使用DTD约束17

2、什么是DTD约束文档17

3、DTD文档分类17

1)内部DTD18

2)外部DTD18

3)公用DTD19

4、DTD校检器19

5、DTD约束语法20

1)定义元素20

2)定义属性27

3)定义实体31

五、DTD综合案例——产品DTD33

一、历史起源

1、发展史

gml(1969):

通用标记语言

IBM砖家-软件要具有高度的可移植性,必须要具有统一的标准

sgml(1985):

标准通用标记语言

html(1993):

w3c

实现不同平台,不同浏览器之间对同一网页的显示

缺点:

兼容性问题

xml(1998):

w3c

可扩展标记语言

面试题:

什么是XML,主要功能是什么?

答:

可扩展标记语言,主要功能是实现对数据的传输与存储。

2、什么是XML

●XML

●全称:

ExtensibleMarkupLanguage

●中文名:

可扩展标记语言

●用于标记电子文件使其具有结构性的标记语言,可以用来标记数据,定义数据类型,允许用户对自己的标记语言进行定义的源语言(自定义)。

HTML结构:

XML结构:

<网页>

<头部>

<身体>

3、XML与HTML区别

1)html标签不能自定义,从标签上不能达到“见词知意”的目的

Nokia手机

Nokia手机

2)html将数据与格式绑定在一起

数据

3)不同浏览器解html不同

4)html语法要求不严格

  • Nokia手机

  • 小米手机

xml语法要求严谨

  • Nokia
  • 4、XML应用场景

    1)充当程序间数据交互的中间件

    PHPXMLVC

    2)配置文件config.php

    PHPJAVAC#

    config.phpconfig.javaconfig.aspx

    config.xml

    3)充当小型数据库

    xml将来可能会代替数据库

    php+oracle

    php+xml:

    金山快译、MSN

    4)规范数据格式(DTD)

    咨询部

    编号姓名学生问题

    1张老师大锤XML是什么?

    教学部

    5、XML在实际开发中的应用

    二、编写合法的XML

    1、ZendStudio软件使用

    1)软件破解

    将压缩包中的jar文件复制到软件安装目录下的plugins文件夹中并覆盖同名文件即可破解。

    2)软件界面

    3)创建工程

    创建工程的两种方式

    ①创建一个空白工程

    ②已存在项目导入

    4、软件配置

    1)字体设置

    2)编码设置

    3)工作区设置

    我们设置的默认工作区不要和我们apache默认htdocs目录放在一起,否则系统在我们创建项目或导入项目时,系统会自动认为项目已存在,如已经设置了默认工作区,请按如下方式更改

    2、快速入门

    1)描述人的信息(demo01.xml)

    2)xml文件两种运行方式

    ①直接打开浏览器,输入网址即可

    ②可以通过鼠标右键——打开方式——浏览器方式打开xml文件即可

    2)描述书的信息(demo02.xml)

    3、编写合法的XML文档

    ●文档声明

    ●元素

    ●元素属性

    ●注释

    ●特殊字符

    ●CDATA区段

    ●处理指令

    1)文档声明

    基本语法:

    xmlversion="1.0"encoding="UTF-8"?

    >

    version:

    xml版本号,目前最新版为1.0版

    encoding:

    编码格式

    standalone是否独立默认yes

    如果xml文件与dtd约束文件一起运行则不独立,反之,则独立

    2.1)元素(标记、节点)

    一个标签分为起始和结束标签(不能省略)

  • Nokia
  • 一个标签中可以嵌套若干子标签,但所有标签必须合理的嵌套,不允许有交叉嵌套

    Nokia手机

    一个XML文档必须有且仅有一个根标签,其他标签都是这个根标签的子标签

    2.2)元素命名规则:

    ①元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点

    正确:

    错误:

    <123>

    ②严格区分大小写;

    正确:

    错误:

    ③只能以字母或下划线开头;

    正确:

    错误:

    <123abc>

    ④名称字符之间不能有空格或制表符;

    正确:

    错误:

    ⑤名称字符之间不能使用冒号

    本身是没有问题的,但是官方不推荐

    3)元素属性

    ①一个元素可以有多个属性

    ②属性值一定要用引号(单引号或双引号)引起来

    ③属性名称的命名规范与元素的命名规范相同

    ④元素中的属性是不允许重复的

    ⑤标签属性所代表的信息也可以被改成用子元素的形式来描述

    4)文档注释

    基本语法:

    --注释内容-->

    注:

    XML声明之前不能有注释,注释不能嵌套

    示例代码(demo03.xml)

    5)特殊字符

    在xml编写时,经常会遇到以下特殊字符

    示例代码(demo04.xml)

    6)CDATA区段

    CDATA:

    CharacterData

    作用:

    把标签当做普通文本内容

    基本语法:

    [CDATA[内容]]>

    问题:

    什么时候使用特殊字符转义,什么使用CDATA区段呢?

    答:

    对于内容比较少的情况,我们可以直接通过特殊字符转义即可

    对于如文章描述、文章内容等内容比较多的情况,可以采用CDATA区段

    7、处理指令PI

    作用:

    用来指挥软件如何解析XML文档。

    语法:

    必须以“

    ”作为开头,以“?

    >”作为结尾。

    常用处理指令:

    xml指令

    xml?

    >

    xml-stylesheet指令

    例:

    xml-stylesheettype="text/css“href=“style.css"?

    >

    type:

    文档类型

    href:

    外部css样式路径

    demo04.xml

    style.css

    运行效果:

    三、XML在GPS导航中的实际应用

    1、了解RSS编写规范

    参考RSS2.0语言规范.doc

    2、创建xml文档,并输入文档声明

    3、定制rss结构(详细请参考rss.xml)

    运行效果:

    四、DTD约束文档

    1、为什么要使用DTD约束

    2、什么是DTD约束文档

    XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束

    约束文档定义了在XML中允许出现的元素名称、属性及元素出现的顺序等等。

    什么是DTD

    DocumentTypeDefinition

    文档类型定义

    约束XML的书写规范

    格式良好的XML:

    遵循XML语法的XML(合法的XML文档)

    有效的XML:

    遵循DTD约束文档的XML(合理的XML文档)

    合理的XML一定是合法的XML,但是合法的XMl不一定是合理的XML

    3、DTD文档分类

    内部DTD

    外部DTD

    公用DTD

    1)内部DTD

    在XML文档中编写的DTD文档我们就称之为内部DTD

    内部DTD基本语法:

    DOCTYPE根元素[

    DTD约束…

    ]>

    示例代码:

    (demo05.xml)

    2)外部DTD

    在XML文档外部定义的DTD文档,我们称之为外部DTD(*.dtd文档)

    外部DTD文档引用语法:

    DOCTYPE根元素SYSTEM“外部DTD的Uri路径”>

    demo05.xml代码:

    demo05.dtd代码:

    运行效果:

    3)公用DTD

    基本语法:

    DOCTYPE根元素PUBLIC“DTD标识名”“公用DTD的URI”>

    公用DTD文件不需要我们编写,因为其都是由第三方权威机构编写,我们只需要遵循该约束即可。

    4、DTD校检器

    默认情况下,所有浏览器都没有校检DTD文档功能,其只能判断XML文档是否合法,如果想进行DTD约束文档的校检,必须借助微软提供的DTD校检器,代码如下:

    示例代码:

    注:

    以上代码只能在IE浏览器中运行,其他浏览器是无法使用ActiveXObject这个类的,另外该文件必须通过鼠标右键——打开方式——IE浏览器打开运行。

    运行效果如下:

    5、DTD约束语法

    定义元素

    定义属性

    定义实体

    1)定义元素

    基本语法:

    ELEMENT元素名称元素类型>

    注:

    在编写定义元素时,一定要从根元素开始一级一级向下定义

    【元素类型定义】:

    (#PCDATA):

    该类型可包含任何字符数据,但是不能包含任何子元素

    EMPTY:

    该类型不能包含子元素和文本,但可以有属性

    ANY:

    该类型可以包含任何在DTD定义的元素内容(通常用于根元素)

    【子元素定义】:

    (子元素):

    定义子元素只能出现一次

    (子元素1,子元素2,……):

    定义子元素出现的顺序以及出现的次数为1次

    (子元素*):

    定义子元素出现的次数为0或多次

    (子元素+):

    定义子元素出现的次数为1到多次

    (子元素?

    ):

    定义子元素出现的次数为0或1次

    (子元素1|子元素2):

    定义互斥元素

    思考题:

    ELEMENTnote(header,(message|body))>

    ELEMENTnote(header|message)*>

    2)定义属性

    基本语法:

    ATTLIST元素名称属性名称属性类型默认值>

    ①属性类型

    CDATA字符或数字(文本类型)

    (en1|en2|……)枚举类型

    ID属性唯一

    IDREF引用

    ②默认值

    #REQUIRED必填

    #IMPLIED可选

    #FIXED固定值

    值默认值

    例1:

    设置属性类型为CDATA,默认值为#REQUIRED

    例2:

    设置属性类型为枚举类型,默认值为#IMPLIED

    例3:

    属性类型为ID类型

    例4:

    属性类型为IDREF引用类型

    例5:

    默认值为#FIXED

    运行效果:

    例6:

    属性的默认值为值类型

    问题:

    固定值与默认值之间有什么区别?

    答:

    固定值其值是固定的,当我们没有声明该属性时,系统会自动追加此属性到元素中。

    默认值实际是提供了一种可选的默认值的情况,你既可以使用此值,也可以单独定义。

    3)定义实体

    在XML中实体分为两种,

    ①引用实体

    定义基本语法:

    ENTITY实体名称“实体的值”>

    调用基本语法:

    &实体名称;

    注:

    引用实体是在DTD文档中定义,在XML文档中使用

    ②参数实体

    定义的基本语法:

    ENTITY%实体名称“实体的值”>

    调用的基本语法:

    %实体名称;

    注:

    参数实体是在DTD文档中定义,在DTD文档中进行使用的。

    五、DTD综合案例——产品DTD

    通过阅读以上代码可知,以上文档为内部DTD文档,所以其是在XML文件中声明和使用的。

    阅读第2行可知,当前XML文档的根元素为CATELOG

    阅读345行可知,其定义了三个引用实体,如下图所示

    阅读第7行代码可知,根元素下具有多个PRODUCT子元素(次数为1到多)

    阅读910行代码可知

    PRODUCT拥有四个子元素

    阅读12-17行代码可知,PRODUCT拥有多个属性

    阅读19-22行代码可知,规格属于文本类型拥有两个属性

    阅读30-35行代码可知,PRICE属于文本节点,拥有四个属性

    编写代码如下图所示:

    万能的数据传输格式——XML

    目录

    万能的数据传输格式——XML1

    一、PHP与XML3

    1、为什么需要PHP解析XML3

    2、PHP解析XML两种常用方式3

    3、XML执行流程3

    4、XML树结构——DOM模型3

    5、DOM模型分类4

    6、非标准DOM模型示例图:

    4

    二、PHPDOM解析XML数据4

    1、PHPDOM模型解析XML三大关键词4

    2、PHPDOM模型常用的四大类5

    1)DOMDocument(文档类-面)5

    2)load方法载入xml到内存,形成dom树结构5

    3)获取同级兄弟节点,形成串5

    4)通过nodeName或nodeValue获取节点信息6

    3、PHPDOM模型中的查操作(四步走)6

    4、PHPDOM模型中的遍历操作(四步走)7

    5、属性查询(四步走)9

    6、PHPDOM模型中的增加操作(六步走)11

    7、PHPDOM模型中的修改操作(几步走)13

    1)值操作(五步走)13

    2)节点操作(六步走)13

    8、PHPDOM模型中的删除操作(六步走)14

    9、PHPDOM模型中的属性操作(几步走)16

    三、PHPSimpleXML实现XML数据解析19

    1、SimpleXML相关类19

    2、SimpleXML查询操作20

    3、SimpleXML遍历查询21

    1)通过for或foreach循环结构遍历输出21

    2)通过children()方法实现遍历输出22

    4、SimpleXML中的属性操作23

    5、SimpleXML中的增加操作24

    四、SimpleXML读取第三方天气预报API25

    五、Xpath查询语言27

    1、通过绝对路径方式查询数据27

    2、使用相对路径方式查询数据29

    3、通过*号查询所有数据30

    4、通过表达式查询数据31

    5、通过@符号查询节点属性32

    六、通过SimpleXML+Xpath实现在线词典32

    一、PHP与XML

    1、为什么需要PHP解析XML

    2、PHP解析XML两种常用方式

    PHPDOM解析XML(主要是实现增删改操作)

    PHPSimpleXML解析XML(主要是实现查询操作)

    3、XML执行流程

    当系统执行XML文件时,会自动执行以下步骤:

    1)首先在内存中开辟一块内存空间

    2)载入XML文件到内存,并形成XML树结构

    4、XML树结构——DOM模型

    5、DOM模型分类

    标准DOM模型(CSS、JavaScript)

    非标准DOM模型(PHP)

    6、非标准DOM模型示例图:

    二、PHPDOM解析XML数据

    1、PHPDOM模型解析XML三大关键词

    面、串、点

    2、PHPDOM模型常用的四大类

    documentobjectmode

    常用类:

    DOMDocument(面)

    DOMNodeList(串)

    DOMElement(点)

    DOMNode(点)

    1)DOMDocument(文档类-面)

    DOMDocument:

    :

    __construct(

    [string$version[,string$encoding]]

    参数说明:

    version:

    xml版本号,目前为1.0

    encoding:

    编码格式,utf-8

    2)load方法载入xml到内存,形成dom树结构

    mixedDOMDocument:

    :

    load(string$filename)

    参数说明:

    filename:

    xml文件名称

    3)获取同级兄弟节点,形成串

    DOMNodeListDOMDocument:

    :

    getElementsByTagName(stringname)

    参数说明:

    name:

    节点的名称

    串中的两个常用属性和方法

    DOMNodeListlength:

    输出当前xml页面多有多少个节点信息

    DOMNodeDOMNodelist:

    :

    item(int$index):

    通过index索引(默认从0开始)获取指定节点

    4)通过nodeName或nodeValue获取节点信息

    nodeName节点名称

    nodeValue节点值

    3、PHPDOM模型中的查操作(四步走)

    第一步:

    在内存中开辟存储空间,形成“面”

    第二步:

    载入XML文件到内存,形成DOM树结构

    第三步:

    获取同级兄弟节点,形成“串”

    第四步:

    通过查询条件,获取相应的数据(“点”)

    示例代码:

    demo01.php

    data.xml

    运行结果:

    4、PHPDOM模型中的遍历操作(四步走)

    第一步:

    开辟内存空间,形成“面”

    第二步:

    载入xml文件到内存,形成DOM树

    第三步:

    获取同级兄弟节点,形成“串”//DOMNodeList

    第四步:

    通过for循环遍历输出节点信息

    示例代码:

    demo02.php

    data.xml

    运行效果:

    5、属性查询(四步走)

    第一步:

    开辟内存空间,形成“面”

    第二步:

    载入xml文件到内存,形成DOM树

    第三步:

    获取同级兄弟节点,形成”串“

    第四步:

    通过item获取指定节点信息并读取属性

    要用到的知识点:

    boolDOMElement:

    :

    hasAttribute(string$name):

    判断是否具有指定名称的属性

    boolDOMNode:

    :

    hasAttributes(void):

    判断是否具有属性

    stringDOMElement:

    :

    getAttribute(string$name):

    获取指定名称的属性值

    示例代码:

    demo03.php

    data.xml

    运行效果:

    6、PHPDOM模型中的增加操作(六步走)

    第一步:

    开辟内存空间,形成”面“

    第二步:

    载入xml文件到内存,形成DOM树

    第三步:

    创建新节点

    第四步:

    创建子节点

    第五步:

    追加子节点到父节点

    第六步:

    保存内存中的信息到xml文件中

    要用到的知识点:

    DOMElementDOMDocument:

    :

    createElement(string$name[,string$value]):

    创建新节点

    参数说明:

    name:

    节点名称

    value:

    可选参数,节点的值

    DOMNodeDOMNode:

    :

    appendChild(DOMNode$newnode):

    追加子节点

    参数说明:

    newnode:

    新节点

    intDOMDocument:

    :

    save(string$filename):

    保存内存中的信息到xml文件中

    参数说明:

    filename:

    文件名称

    示例代码:

    demo04.php

    运行效果:

    data.xml

    7、PHPDOM模型中的修改操作(几步走)

    修改操作分类:

    1)值操作(五步走)

    第一步:

    开辟内存空间,形成”面“

    第二步:

    载入xml文件到内存,形成DOM树

    第三步:

    查询要修改的节点

    第四步:

    通过nodeValue修改值信息

    第五步:

    保存文件到xml

    示例代码:

    demo05_1.php

    运行效果:

    data.xml

    2)节点操作(六步走)

    第一步:

    开辟内存空间,形成”面“

    第二步:

    载入xml文件到内存,形成DOM树

    第三步:

    查找要修改的老节点

    第四步:

    创建新节点

    第五步:

    查找父节点,替换老节点

    第六步:

    保存信息到xml文件中

    要用到的知识:

    DOMNodeDOMNode:

    :

    replaceChild(DOMNode$newnode,DOMNode$oldnode):

    更新节点

    参数说明:

    newnode:

    新节点

    oldnode:

    老节点

    示例代码:

    demo05_2.php

    运行效果:

    data.xml

    8、PHPDOM模型中的删除操作(六步走)

    第一步:

    开辟内存空间,形成”面“

    第二步:

    载入xml文件到内存,形成DOM树

    第三步:

    查找要删除的老节点

    第四步:

    查找老节点的父节点

    第五步:

    删除操作

    第六步:

    保存信息到xml文件中

    要使用的知识点:

    DOMNodeDOMNode:

    :

    removeChild(DOMNode$oldnode):

    删除子节点

    参数说明:

    oldnode:

    要删除的老节点

    示例代码:

    demo06.php

    运行效果:

    data.xml

    9、PHPDOM模型中的属性操作(几步走)

    第一步:

    开辟内存空间,形成”面“

    第二步:

    载入xml文件到内存,形成DOM树结构

    第三步:

    查找要添加或修改属性的节点

    第四步:

    设置属性信息

    第五步:

    保存信息到xml文件中

    要用到的知识点:

    添加与修改操作

    DOMAttrDOMElement:

    :

    setAttribute(string$name,string$value)添加操作

    DOMAttrDOMElement:

    :

    setAttribute(string$name,string$value)修改操作

    当我们的节点不具有指定属性时,那么setAttribute方法就是新增属性,否则就是修改属性

    参数说明:

    name:

    属性名称

    value:

    属性的值

    删除操作

    boolDOMElement:

    :

    removeAttribute(string$name)删除操作

    参数说明:

    name:

    要移除的属性名称

    示例代码:

    添加操作:

    demo07.php

    运行效果:

  • 展开阅读全文
    相关资源
    猜你喜欢
    相关搜索

    当前位置:首页 > 经管营销 > 经济市场

    copyright@ 2008-2022 冰豆网网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1