• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 简单处理 XML

php 搞代码 4年前 (2022-01-23) 9次浏览 已收录 0个评论

一、手动输出xml

/* * 手动输出xml * @author flyer0126 * @since 2012/4/27 */header("Content-Type:text/xml");print '<?xml version="1.0"?>'."\n";print "<shows>\n";$shows = array(                array(                        'name' => 'aa',                        'channel' => 'a1',                        'start' => 'a2'                ),                array(                        'name' => 'bb',                        'channel' => 'b1',                        'start' => 'b2'                ),                array(                        'name' => 'cc',                        'channel' => 'c1',                        'start' => 'c2'                ));foreach($shows as $show){    print "<show>\n";    foreach($show as $tag => $val)    {        print "<$tag>".htmlspecialchars($val)."</$tag>\n";    }    print "</show>\n";}print "</shows>\n";/**<?xml version="1.0"?><shows><show><name>aa</name><channel>a1</channel><start>a2</start></show><show><name>bb</name><channel>b1</channel><start>b2</start></show><show><name>cc</name><channel>c1</channel><start>c2</start></show></shows>**/

二、通过DOMDocument生成xml

/* * 通过DOMDocument生成xml * @author flyer0126 * @since 2012/4/27 */// 创建新文档$dom = new DOMDocument("1.0", "UTF-8");// 创建根元素humans,并将其添加至文档$humans = $dom->appendChild($dom->createElement("humans"));// 创建根元素zhangying,并将其添加至humans$zhangying = $humans->appendChild($dom->createElement("zhangying"));// 创建name元素,并将其添加至zhangying$name = $zhangying->appendChild($dom->createElement("name"));$name->appendChild($dom->createTextNode("张映"));$sex = $zhangying->appendChild($dom->createElement("sex"));$sex->appendChild($dom->createTextNode("男"));$old = $zhangying->appendChild($dom->createElement("old"));$old->appendChild($dom->createTextNode("28"));// 创建根元素tank,并将其添加至humans$tank = $humans->appendChild($dom->createElement("tank"));// 创建name元素,并将其添加至tank$name = $tank->appendChild($dom->createElement("name"));$name->appendChild($dom->createTextNode("tank"));$sex = $tank->appendChild($dom->createElement("sex"));$sex->appendChild($dom->createTextNode("男"));$old = $tank->appendChild($dom->createElement("old"));$old->appendChild($dom->createTextNode("28"));/*// 设置author元素$author = $book->appendChild($dom->createElement("author"));$author->appendChild($dom->createTextNode("zhangh"));$author->setAttribute("class", "win_close");*/// 输出$dom->formatOutput = true;header('Content-Type:text/xml');echo $dom->saveXML();// 将文档表现形式放于book变量中//$book = $dom->saveXML();// 将文档输出为book.xml文件//$dom->save("humans.xml");/**    <?xml version="1.0 encoding="UTF-8"?>    <humans>    <zhangying>    <name>张映</name>    <sex>男</sex>    <old>28</old>    </zhangying>    <tank>    <name>tank</name>    <sex>男</sex>    <old>28</old>    </tank>    </humans>  **/

三、xml的读取

/* * xml的读取 * @author flyer0126 * @since 2012/4/27 */// 1. 利用simplexml_load_file读取简单的xml文件$humans = simplexml_load_file("humans.xml");foreach($humans as $key => $human){    echo $human->name."->".$human->sex."->".$human->old."\n";}/**张映->男->28tank->男->28**/// 2. 利用DOMDocument读取xml$dom = new DOMDocument();$dom->load("humans.xml");$humans = $dom->getElementsByTagName("humans");foreach($humans as $key=>$human){$names = $human->getElementsByTagName("name");$olds = $human->getElementsByTagName("old");$sexes = $human->getElementsByTagName("sex");foreach($names as $k=>$name){$name = $names->item($k)->nodeValue;$sex = $sexes->item($k)->nodeValue;$old = $olds->item($k)->nodeValue;echo "$name->$sex->$old\n";}}/**张映->男->28tank->男->28**/// 3. 利用正则来获取数据$xml = '';$f = fopen("humans.xml", "r");while($data = fread($f, 2096)){$xml .= $data;}fclose($f);preg_match_all('/\<humans\>(.*?)\<\/humans\>/s', $xml, $humans);foreach($humans[1] as $human){preg_match_all('/\<name\>(.*?)\<\/name\>/s', $human, $names);preg_match_all('/\<sex\&gt<div>)本文来源gaodai.ma#com搞#代!码网_</div><strong>搞代gaodaima码</strong>;(.*?)\<\/sex\>/s', $human, $sexes);preg_match_all('/\<old\>(.*?)\<\/old\>/s', $human, $olds);}foreach($names[1] as $k=>$name){echo $names[1][$k].'-'.$sexes[1][$k].'-'.$olds[1][$k]."\n";}/**张映->男->28tank->男->28**/// 4. 利用XMLReader获取数据$reader = new XMLReader();$reader->open("humans.xml");$i = 1;while($reader->read()){if($reader->nodeType == XMLReader::TEXT){if($i%3){echo $reader->value;}else{echo $reader->value."\n";}$i++;}}/**张映男28tank男28**/

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 简单处理 XML
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址