PHP学习笔记 21

来源:互联网 发布:如何成为大数据分析师 编辑:程序博客网 时间:2024/06/02 07:09

SimpleXML Parser

  • SimpleXML 是基于树的 xml 解析器
  • 适合 xml 比较小的场合
<?php$xml = simplexml_load_file("config.xml") or die("无法打开文件");// $xml = simplexml_load_string("xmlcontent");if ($xml === false) {    echo "解析错误:";    foreach (libxml_get_errors() as $error) {        echo "<br>" . $error->message;    }} else {    print_r($xml);    echo "<br>";    // 访问节点    echo "ip: " . $xml->ip . "<br>";    echo "name: " . $xml->name . "<br>";    echo "addr: " . $xml->addr . "<br>";     // 访问一组节点中的一个    echo "location of item 0: " . $xml->item[0]->location . "<br>";     // 遍历    foreach ($xml->item as $item) {        echo "location: " . $item->location . ", price: " . $item->price . "<br>";    }    // 访问属性    echo "desc of item 0: " . $xml->item[0]['desc'] . "<br>";}?>

Expat Parser

  • Expat Parser 是基于事件的解析器
  • 适合 XML 较大的场合
<?php// 创建解析器$parser = xml_parser_create();function start($parser, $elementName, $elementAttrs) {    echo $elementName . " ";}function stop($parser, $elementName) {    echo "<br>";}function data($parser, $data) {    echo $data;}// 设置元素处理回调函数xml_set_element_handler($parser, "start", "stop");// 设置数据处理回调函数xml_set_character_data_handler($parser, "data");// 读取文件,解析XML$f = fopen("config.xml", "r");while ($data = fread($f, 1024)) {    xml_parse($parser, $data, feof($f)) or     die(        "line: " . xml_get_current_line_number($parser) .         ", Error: " . xml_error_string(xml_get_error_code($parser))    );}// 销毁xml_parser_free($parser);?>
原创粉丝点击