定义和用法

xml_parse() 函数解析 XML 文档。高佣联盟 www.cgewang.com

如果成功,该函数则返回 TRUE。如果失败,则返回 FALSE。

语法

xml_parse(parser,xml,end)
参数 描述
parser 必需。规定要使用的 XML 解析器。
xml 必需。规定要解析的 XML 数据。
end 可选。如果该参数是 TRUE,则 "xml" 参数中的数据为当前解析中最后一段数据。

注释: 实体错误在解析的最后被报告,且仅在 "end" 参数是 TRUE 时才显示。


提示和注释

提示:要创建 XML 解析器,请使用 xml_parser_create() 函数。


实例 1

XML 文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

PHP 代码

<?php
$parser=xml_parser_create();

function char($parser,$data)
{
echo $data;
}

xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");

while ($data=fread($fp,4096))
{
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_parser_free($parser);
?>

上面代码的输出如下所示:

Tove Jani Reminder Don't forget me this weekend!

实例 2

使用相同的 XML 文件但通过不同的方式显示 XML 数据:

<?php
$parser=xml_parser_create();

function start($parser,$element_name,$element_attrs)
{
switch($element_name)
{
case "NOTE":
echo "-- Note --<br />";
break;
case "TO":
echo "To: ";
break;
case "FROM":
echo "From: ";
break;
case "HEADING":
echo "Heading: ";
break;
case "BODY":
echo "Message: ";
}
}

function stop($parser,$element_name)
{
echo "<br />";
}

function char($parser,$data)
{
echo $data;
}

xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");

while ($data=fread($fp,4096))
{
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_parser_free($parser);
?>

上面代码的输出如下所示:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!

最新文章

  1. ABP源码分析三十五:ABP中动态WebAPI原理解析
  2. JavaScript深入浅出4-对象
  3. kibana使用操作部分
  4. Android调用Web服务
  5. 浅析java类加载器ClassLoader
  6. Middleware课程01-概述
  7. [置顶] mybatis批量新增系列之有主键的表的批量新增
  8. .net 设置版本号信息
  9. XML(二)之DTD——XML文件约束
  10. FreeMarker 快速入门
  11. Java8-2-Lambda表达式实战-一句话实现Map中按照Value排序
  12. Get all static wms goodlocation data
  13. js 调试技巧
  14. 基本数据类型float和double的区别
  15. 在flask框架中,对wtforms的SelectMultipleField的一个报错处理
  16. JVM——垃圾回收(GC)
  17. RN animated组动画
  18. hdu 5762 Teacher Bo 暴力
  19. 坏消息:百度影音、快播关闭P2P服务器!
  20. 基于jquery仿天猫分类导航banner切换

热门文章

  1. day52作业
  2. js数组算法题01
  3. 基于NeteaseCloudMusicApi和electron-vue开发网易云音乐--electron-vue初始化
  4. MYSQL 之 JDBC(七):增删改查(五) DAO设计模式
  5. 在flask中使用flask-migrate管理数据库
  6. Linux05 /nginx
  7. 重学c#系列——c#运行原理(二)
  8. three.js 曲线
  9. Security and Risk Management(5)
  10. Dresdon二次开发