您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP 简单处理 XML

2024/3/18 2:05:55发布34次查看
一、手动输出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"; } /** 张映->男->28 tank->男->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"; } } /** 张映->男->28 tank->男->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\>(.*?)\<\/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"; } /** 张映->男->28 tank->男->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++; } } /** 张映男28 tank男28 **/
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product