php 中解析xml

    php解析xml有三种方式:Expat、dom、simpleXML。



    XiaoMing
    xiaoZhao
    Booking
    Let's reading book.

一、Expat方式,是一种基于事件的解析器

PHP xml

"; // 初始化xml解析器 $parser = xml_parser_create(); // 使用开启标签的函数 function start($parser, $element_name, $element_attr){ switch($element_name){ case "NOTE": echo "---Node---
"; break; case "TO": echo "To:"; break; case "FROM": echo "From"; break; case "HEADING": echo "Heading:"; break; case "BODY": echo "Message:"; break; } } echo "

****************

"; // 使用结束标签做的事情 function stop($parser, $element_name){ echo "
"; } // 对字符做的处理 function char($parser, $data){ echo $data; } echo "

read begin...

"; // 定义处理器,当遇到开始和结束标签所要做的动作 xml_set_element_handler($parser, "start", "stop"); // 定义处理器,当遇到字符要做的动作 xml_set_character_data_handler($parser, "char"); // 打开xml文件 $fp = fopen("php_text.xml","r"); // 读取数据 while($data=fread($fp,4096)){ echo $data; xml_parse($parser, $data, feof($fp)) or die (sprintf("Xml Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } // 释放xml解析器 xml_parser_free($parser); ?>

二、Dom方式,是基于树的解析器

load("php_text.xml");

    print $xmlDoc->saveXML();

    // 循环note中的所有元素
    $x = $xmlDoc->documentElement;
    foreach($x ->childNodes as $item){
        print $item->nodeName." = ".$item->nodeValue. "
"; } ?>

三、simpleXml,将文档转化为对象

getName()."
"; foreach($xml->children() as $child){ echo $child->getName()." : ". $child ."
"; } ?>

 

你可能感兴趣的:(PHP,xml)