All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
asp.net生成验证码(vb.net)_[Asp.Net教程]
入门知识:动态网页PHP编程中字符串5个技巧_php资料_编程技术
PHP实例:PHP安全编程之加密功能_[PHP教程]
打印选择区的文本(带html里规定的格式)_JavaScript技术_编程技术
php+mysql实现无限级分类_[PHP教程]
使用MS,SQL7的LINKED,SERVER第一篇_mssql学习_编程技术
动态网页制作PHP之看实例学正则表达式_php资料_编程技术
用PHP制作动态计数器_php资料_编程技术
ASP.NET实例:增强,GridView,控件的功能_[Asp.Net教程]
打造一个通用ASP.NET数据分页控件_[Asp.Net教程]
Reading number is top 10 pictures
职场回春术
Sora aoi calligraphy show
HongMenYan premiere XinLiangGong clairvoyant outfit PK YiFeiLiu1
Ashlynn Brooke show proud chest measurement3
Born After 90 Beijing sports university campus flower photos4
Sell the barbecue as says father du breul3
Sora aoi mirror memorial classics1
不知名的美女素颜照1
天安门景物系列(一)
Players in the eyes of a perfect love2
Download software ranking
传奇私服架设教程
Eclipse-CALMSANNY (second edition)
Boxer's Top ten classic battle8
Tram sex maniac 2 (H) rar bag6
终极变速大师Speeder3.26
White deer villiage
美女写真3
Red cliff
艳兽都市
C#COM编程指南
delv published in(发表于) 2013/12/29 4:46:15 Edit(编辑)
用php读取xml数据_php资料_编程技术

用php读取xml数据_php资料_编程技术

用php读取xml数据_php资料_编程技术-你的首页-uuhomepage.com

今天工作上碰到一个问题 由于我们的项目数据太少 所以需要从web search那边借调数据,他们只给我们提供了一个xml的接口。因此,我们需要把xml的数据转化成html呈现给大家。由于项目是基于php的,所以就摒弃了用js来读取xml选择了继续使用php。不过,我以前从来没有做过此类的尝试 所以找了很多网上资料同时参照了php的工作手册,发现在php4的环境下 用parser函数是一个比较好的选择(当然也可以用dom 但是需要对服务器重新进行配置 php5对dom支持得比较好)。

虽然以前没有接触过此类问题,但是还是很快就解决了,不过在解决和摸索的过程中发现网上关于此类的资料虽然不少,但是参差不齐,很多描述不是很详细,还是操作手册比较管用。

好了,言归正传:

parser是php内置的一个用来处理xml的解析器,它的工作由三个事件组成:起始标签、 读取数据、结束标签。

也就是说在对xml进行处理的时候每当遇到起始标签、数据和结束标签的时候函数会做相应的动作来完成对xml数据的转换。

php中对xml读取的相关函数的介绍:

引用:

------------------------------------------------------------------

对象 XML解析函数 描述
元素 xml_set_element_handler() 元素的开始和结束
字符数据 xml_set_character_data_handler() 字符数据的开始
外部实体 xml_set_external_entity_ref_handler() 外部实体出现
未解析外部实体 xml_set_unparsed_entity_decl_handler() 未解析的外部实体出现
处理指令 xml_set_processing_instruction_handler() 处理指令的出现
记法声明 xml_set_notation_decl_handler() 记法声明的出现
默认 xml_set_default_handler() 其它没有指定处理函数的事件

-------------------------------------------------------------------

下面就给大家举一个小小的例子用parser函数来读取xml数据:



$parser = xml_parser_create(); //创建一个parser编辑器
xml_set_element_handler($parser, "startElement", "endElement");//设立标签触发时的相应函数 这里分别为startElement和endElenment
xml_set_character_data_handler($parser, "characterData");//设立数据读取时的相应函数
$xml_file="1.xml";//指定所要读取的xml文件,可以是url
$filehandler = fopen($xml_file, "r");//打开文件



while ($data = fread($filehandler, 4096))
{
xml_parse($parser, $data, feof($filehandler));
}//每次取出4096个字节进行处理

fclose($filehandler);
xml_parser_free($parser);//关闭和释放parser解析器


$name=false;
$position=false;
function startElement($parser_instance, $element_name, $attrs) //起始标签事件的函数
{
global $name,$position;
if($element_name=="NAME")
{
$name=true;
$position=false;
echo "名字:";
}
if($element_name=="POSITION")
{$name=false;
$position=true;
echo "职位:";
}
}

function characterData($parser_instance, $xml_data) //读取数据时的函数
{
global $name,$position;
if($position)
echo $xml_data."
";
if($name)
echo $xml_data."
";
}

function endElement($parser_instance, $element_name) //结束标签事件的函数
{
global $name,$position;
$name=false;
$position=false;
}

?>


xml文件代码如下:






张三
经理



李四
助理



这个程序的结果如下:

引用:
-----------------------------------------------------------------

名字:张三 职位:经理
名字:李四 职位:助理

-----------------------------------------------------------------





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.