前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 运用 XMLWriter 读写 xml 文件

PHP 运用 XMLWriter 读写 xml 文件

作者头像
阳光岛主
发布2018-05-17 09:51:13
1.2K0
发布2018-05-17 09:51:13
举报
文章被收录于专栏:米扑专栏

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

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

原文请见米扑博客:PHP 运用 XMLWriter 读写 xml 文件

写入 xml

test_xml_write.php

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253

<?php/** * mimvp.com * 2017.06.22 */ header("Content-type: text/html; charset=utf-8");$xml = new XMLWriter(); $xml->openUri("php://output");   // 输出到网页控制台$xml->openUri("mimvp.xml");      // 输出到文件,需要读写权限,推荐 chmod 766 mimvp.xml // 设置缩进字符串$xml->setIndentString("\t");$xml->setIndent(true); // xml文档开始$xml->startDocument('1.0', 'utf-8'); // 创建根节点$xml->startElement("MimvpInfo");     // 节点1    $xml->startElement("Item");        $xml->writeAttribute("info","1");    // 属性            $xml->startElement("id");            $xml->text("01");            $xml->endElement();                         $xml->startElement("name");            $xml->text("米扑代理");            $xml->endElement();    $xml->endElement();         // 节点2    $xml->startElement("Item");        $xml->writeAttribute("info","1");    // 属性            $xml->startElement("id");            $xml->text("02");            $xml->endElement();                         $xml->startElement("name");            $xml->text("米扑财富");            $xml->endElement();    $xml->endElement();         $xml->endElement();$xml->endDocument(); //header("Content-type: text/xml");//取得缓冲区里的xml字符串//echo $xml->outputMemory();  ?>

输出mimvp.xml文件内容:

1234567891011

<?xml version="1.0" encoding="UTF-8"?><MimvpInfo>    <Item info="1">        <id>01</id>        <name>米扑代理</name>    </Item>    <Item info="1">        <id>02</id>        <name>米扑财富</name>    </Item></MimvpInfo>

注意: 

1. 新建mimvp.xml 文件:

touch mimvp.xml

2. 授权mimvp.xml 文件:

chmod 766 mimvp.xml

读取 xml

test_xml_read.php

1234567891011121314151617181920212223242526272829303132

<?php/** * mimvp.com * 2017.06.22 */ header ( "Content-type: text/html; charset=utf-8" );$xml = new XMLReader (); // 载入xml文件,如果是字符串直接使用xml方法$xml->open ( "mimvp.xml" ); // 开始读取xmlwhile ( $xml->read () ) {    // 根据节点类型和元素名称取得文本节点或属性    if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'item') {        print $xml->getAttribute ( "info" ) . "</br>";    }    if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'id') {        $xml->read ();   // 移动指针到下一个节点        print $xml->value . "\t";    }    if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'name') {        $xml->read ();           print $xml->value . "</br>";    }    if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'age') {        $xml->read ();        print $xml->value . "</br>";    }}?>

输出结果:

01 米扑代理 02 米扑财富

源代码及应用

请见米扑科技的Github: https://github.com/mimvp/sitemap-php

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年11月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档