1. 简介XML
XML:可扩展性标记语言(用户可以自定义标签)。
2. HTML:超文本标记语言(超出文本表示的范围)
3. XML的用途:
(1) 存储和传输数据
(2) 作为小型的数据库使用
(3) 保存项目的一些配置文件
4. 在表示非常复杂的数据时,一般采用XML或者json
5. XML语法规则:
1, 必须有且只有一个根元素
2, 属性值建议用双引号引起来
3, 所有元素必须闭合
4, 如果XML中有特殊字符,需要引用实体
< -------- <
Ø -------- >
& --------&
‘ --------'
“ -------- "
6. PHP如何操作XML
(1)DOM方法解析
1. XML DOM ----- 将XML文档转化成PHP可以操作的对象。
2. 常用的一些概念:
DOMDocument ------ 操作整个节点树
DOMElement ------ 操作DOM节点树种某个元素节点
DOMNodeList ------ 操作DOM节点树中某些元素(节点)的集合
3. 解析的步骤:
1, 实例化当前需要的对象(DOMDocument对象)
2, 告知DOMDocument对象去解析的对象(load())
3, 告知标签名找元素(getElementByTagName( ))
4, 通过DOMNodeList对象的item( )方法根据索引(下标从0开始)获得某个节点
5, 如果下面还有子节点继续使用getElementByTagName( )寻找,一直找到具体的元素
6, 再通过nodeValue获得其值
(2)SAX解析XML
原理:遇到标签解析标签,遇到数据解析数据,解析完后处理数据。
解析器解析数据用到的函数:
(1) xml_parser_create() 创建一个解析器,参数是编码
例如:$parser=xml_parser_create(‘utf-8’)
(2) xml_set_element_handler()遇到标签怎么处理, 参数1:创建解析器的名称,参数2:遇到开始标签的处理函数,
参数3:遇到结束标签的处理函数
例如:xml_set_element_handler($parser,’start_element’,’stop_element’)
(3) xml_set_character_data_handler()遇到数据怎么处理
参数1:解析器名
参数2:结束标签的名字
例如:xml_set_character_data_handler($parser,'data_process')
遇到数据之后的处理:
参数1:解析器名
参数2:遇到的数据
function data_process()($parser,$data){
echo '数据是:'.$data."<br>";
}
xml_get_error_code( )获得错误的代码(几号错误)
xml_error_string( ) 根据错误编号显示对应的错误信息
(3)simpleXML解析XML文件
原理:simpleXMLElement这个对象会将所有的XML的元素转化成对象,相同的元素名转化成对象的集合。
1,访问一个节点:访问元素的属性,通过数组下标的形式
$id=$book[0][‘id’]
2,如果获得是一个对象的集合,foreach 遍历
3,如果要找到具体的某一个元素,通过数组索引
获得author ,title的内容
$first_book=$books[0];
Foreach($books as $book){
Echo $book->author;
Echo $book->title;
}
4,增加一个节点
假设$sex为根节点
$new_book=$sex->addChild(‘book’);
$new_book=addChild(‘title’,’笑傲江湖’);
$sex->asXML(‘book.xml’);//保存到book.xml文件中
5,删除一个节点
$book=$sex->book[2];//确定删除的书
unset($book);
6,修改节点
$sex->book[3]->author=’古龙’;//修改第四本书的author属性的值,修改成‘古龙’。