龙竞技官网PHP基于XMLWriter操作xml的诀要剖析_php手艺_脚本之家

2019-11-26 16:07栏目:龙竞技官网
TAG:

本文实例讲述了PHP基于XMLWriter操作xml的方法。分享给大家供大家参考,具体如下:

本文实例讲述了PHP使用XMLWriter读写xml文件操作。分享给大家供大家参考,具体如下:

本文实例讲述了PHP基于SimpleXML生成和解析xml的方法。分享给大家供大家参考,具体如下:

接着昨天的这次再来学习一种读写xml的方式,这种方式主要围绕XMLWriter和XMLReader进行。前者用于生成xml,后者则是用来读取并解析xml.废话不多说一起来看看吧

米扑科技旗下的多个产品,需要脚本自动生成sitemap.xml,于是重新温习一遍PHP XML读写操作。

xml就不多解释了,php也提供了操作xml的方法,php操作xml可以有多种方式如domdocment,simplexml,xmlwriter等其中最简单的应该是simplexml了,这次就来说说simplexml怎么读取和解析xml文件或字符串

1. 生成xml文件或字符串

读写xml的方式,主要围绕XMLWriterXMLReader进行,前者用于生成xml,后者则是用来读取并解析xml

1. 生成xml字符串和文件

openUri; //设置输出,如果不需要保存成文件则使用上面被注释掉那句 $xml->openUri; //设置缩进字符串,这里设置为空串 $xml->setIndentString; $xml->setIndent; //xml文档开始 $xml->startDocument; //创建根节点 $xml->startElement; $xml->startElement; //添加属性 $xml->writeAttribute; $xml->startElement; $xml->text; $xml->endElement(); $xml->startElement; $xml->text; $xml->endElement; $xml->endElement(); $xml->endDocument(); //header("Content-type: text/xml"); //取得缓冲区里的xml字符串 //echo $xml->outputMemory();?>

写入 xml

'); $item=$xml->addchild; $item->addchild; $item->addchild; $item2=$xml->addchild; $item2->addchild; $item2->addchild; $item2->addAttribute; header("Content-type: text/xml"); echo $xml->asXml(); $xml->asXml;?>

这种方式的特点是每个标签结束后需要一个endElement,xml拼接好后需要把文档结束掉。有一种“层层包裹”的感觉

test_xml_write.php

生成xml最重要的就是addchild,addAttribute,asXml三个方法,如果只是单纯生成xml文件的话那个header可以不要,下面是浏览器的显示结果

2. 解析xml

openUri; // 输出到网页控制台$xml->openUri; // 输出到文件,需要读写权限,推荐 chmod 766 mimvp.xml// 设置缩进字符串$xml->setIndentString;$xml->setIndent;// xml文档开始$xml->startDocument;// 创建根节点$xml->startElement; // 节点1 $xml->startElement; $xml->writeAttribute; // 属性 $xml->startElement; $xml->text; $xml->endElement(); $xml->startElement; $xml->text; $xml->endElement; // 节点2 $xml->startElement; $xml->writeAttribute; // 属性 $xml->startElement; $xml->text; $xml->endElement(); $xml->startElement; $xml->text; $xml->endElement;$xml->endElement;//header("Content-type: text/xml");//取得缓冲区里的xml字符串//echo $xml->outputMemory();?>

2. simplexml解析xml文件或字符串

open;//开始读取xml while{ //根据节点类型和元素名称取得文本节点或属性 if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'item') { print $xml->getAttribute . ""; } if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'name') { //移动指针到下一个节点 $xml->read(); //取得文本节点的值 print $xml->value.""; } if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'age') { $xml->read(); print $xml->value.""; } }?>

输出mimvp.xml文件内容:

 $value ) { echo "$key:$value"."
"; } }?>

这种解析xml的方式比较高效,如果有的地方看不懂建议查阅下PHP开发手册

  01 米扑代理   02 米扑财富 

上面的方法适合解析xml文件,如果是xml字符串就把simplexml_load_file改为simplexml_load_string就可以了,children用于取得根节点或者子节点,取得的节点是一个数组直接遍历必要的时候加上过滤条件就可以了,下面是解析的结果

冯绍峰30潘玮柏29
  1. 新建mimvp.xml 文件:

顺便把我的xml文件贴出来

版权声明:本文由龙竞技官网发布于龙竞技官网,转载请注明出处:龙竞技官网PHP基于XMLWriter操作xml的诀要剖析_php手艺_脚本之家