1>DOM:xml dom---将xml转化成php可以操作的对象(xml来传递和存储一些数据)
Html dom---将html文档转化成js可以操作的对象(js用来实现浏览器的一些特效)
Dom解析xml的步骤:实例化dom对象(DOMDocument)---->加载要解析的xml文件(load)---->通过标签名查找元素(getElementsByTagname)结果是domnodelist----->通过DOMnodeList的item()方法获得具体的某一标签元素---->如果下面还有子元素继续通过getelementsbytagname查找继续调用item()--->调用nodeValue获取值
2>sax解析xml
Sax:(simple API for xml)简单的xml应用程序接口
API:(application program interface)应用程序接口
Dom----会在内存中生成一个节点树如果xml文件特别大的话会十分占用内存
Sax----不在内存中生成节点树,不需要占用内存
Sax解析xml的步骤:xml_parser_create('字符编码集')创建xml解析器---->xml_set_element_handler(解析器,‘开始标签的处理函数’,‘结束标签的处理函数’)创建标签处理器---->function start(解析器,标签名,标签属性)创建开始标签处理函数----->function end(解析器,标签名)创建结束标签处理函数---->xml_set_character_data_handler(解析器,数据处理函数)创建数据处理器---->function data(解析器,数据)创建数据处理函数--->file_get_contents(xml文件)获得远程文件的内容将其保存在一个变量中---->xml_parse(解析器,文件内容,true)---->xml_error_string输出错误信息xml_get_error_code输出错误信息的代码
3>simpleXml解析xml
解析原理:simpleXmlElement这个对象会将所有的标签元素转化成对象,其中会将相同元素对象放在一起形成一个对象集合。
Simplexml解析xml步骤:$xml=file_get_contents(xml文件名)先将新目录文件的内容获取进来----->实例化simpleXmlElement对象($doc=new simplexmlElemnt($XML))---》直接获取标签($books=$xml->book)然后通过下表形式获取内容(echo $books[0] $book[1]->title等等);可以用foreach来遍历