首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

3DOM形式获得数据内容

2013-03-06 
3DOM方式获得数据内容XML是什么?html hyper text markup language,html的标签是有限的个数,就是规定好那些

3DOM方式获得数据内容

XML是什么?

html hyper text markup language,html的标签是有限的个数,就是规定好那些。

EXtensible Markup Language

可扩展标记语言

标记语言,用标签语法,表示内容与结构

xml的语法也是由很多的标签组成

可扩展,xml的标签是可以任意定义的,不受语言的限制,但是 需要自己定义

信息传输工具:

设计的宗旨:是 传输数据 而非 显示数据(相对于html而言)

创建xml,编写xml文档

xml的语法规则是什么?

正常的xml文件

1,所有的元素必须有关闭标签,所有的元素必须闭合(标签名要一致)

如果没有闭合的话:

如果标签内没有内容,可以使用在开启标签后增加/自动闭合

2,标签必须对大小写敏感

3,标签必须被正确的嵌套

4,文档 必须要存在根元素

应该存在一个最顶级的元素,将其他所有的元素标签都包含在内

例如book.xml中的bookshelf元素

有几个根元素?只能存在一个根元素

5,任何属性的值应该使用引号包含起来,而且建议属性应该使用双引号

6,数据中如果出现特殊字符,需要使用实体引用代替特殊字符

例如:< 在xml语法中,就会被认作 是标签的开始符号,一旦出现在数据中,就无法辨认,应该是 标签 还是 数据,因此应该将其 使用实体

常用的实体:特殊符号:

<  <

>  >

&  &

‘   '

“   ";

但是以上的特殊符号中,< 和 & 才是 必须要使用实体引用的,其他的是建议使用,大家尽量按照建议去使用,以上的5个特殊符号都要实体引用

7,注释的写法:

与html的注释 一致

<!--   注释内容 -->

xml能干什么?

传输和存储数据

作为小型数据库使用?

向某些配置信息保存到xml文件中,作为项目的配置文件使用

PHP如何操作XML呢?

常用的有如下几种:

DOM的方式:利用文档对象模型(document object model)去操作xml

SAX的方式:利用(simple API for XML)去 操作xml,使用xml解析器

simpleXML的方式:php提供的simpleXML对象来便捷的操作XML

使用DOM来操作XML

curd(create update read delete) 增删改查

什么是文档对象模型?DOM?

将xml文档 转化成了php可操作的对象 这种操作方式就是DOM的操作方式

php的dom操作 也是基于PHP5的面向对象思想

认识需要在php中DOM操作时用到的概念:

DOMDocument对象 用于操作的是整个的DOM的节点树

DOMElement对象  用于操作DOM节点树中,某个元素的(节点的)

DOMNodeList对象 用于操作DOM节点树中,某些节点(元素)集合的

步骤:

1, 实例化当前需要的对象(一般都是先得到DOMDocument对象)

实例化时所需要的参数为:1版本(xml语言的版本而不是php的版本)2编码

2,使用这个对象 解析当前的xml,要告知DOMDocument对象,去解析哪个xml文档

我们使用DOMDocument::load()方法 从一个xml文件中获取xml内容

3,使用 DOMDocument对象的getElementsByTagName()找到以某个名称命名的所有标签

参数是 标签名

返回值 一个DOMNodeList对象(集合类的数据)

此对象有length属性,表示匹配的数量

4,我们可以使用DOMNodeList对象的item方法,根据索引(位置,由0开始)获得某个节点

例如获得索引值为1的节点

循环获得所有的索引对应的节点?

完成了这个步骤,我们就可以依次得到每个book元素

5,再根据当前book找到下面的  title和author

//再次调用DOMElement对象的getElementsByTagName,获得当前元素下的某个节点

    //此方法的返回值 依然是 NodeList对象,因此需要再次使用item获得某个元素

    //由于我们知道book.xml的结构在 book下只有一个title存在,因此,我们使用

//item(0) 在NodeList中来获取唯一的元素

6,再根据title元素,获得其内容

我们使用element对象的nodeValue属性 获得其值

热点排行