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属性 获得其值