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

Reading number is top 10 articles
调整Windows参数提高SQL,Server性能_mssql学习_编程技术
XML字符串和XML DOCUMENT的相互转换_[XML教程]
在ASP.NET中利用VWD操作数据库简介_[Asp.Net教程]
温故知新ASP.NET,2.0(C#)(8),-,DataSourceControl(数据源控件)_[Asp.Net教程]
6种常用ASP.NET验证控件_[Asp.Net教程]
HTML 5 预览(4)_[Html教程]
模拟Asp.Net,Forums实现可以换皮肤的控件_[Asp.Net教程]
跟我学SQL:(五)创建和修改表格_mssql学习_编程技术
asp.net搜索关键词高亮显示函数_[Asp.Net教程]
利用Atlas库为Web页面加入鼠标拖放功能_.net资料_编程技术
Reading number is top 10 pictures
Sora aoi possession photo1
So beauty, will let you spray blood9
50个至今影响世界的德国发明
Catch prostitution woman in China
Send some Valentine's day cartoon
清醇靓丽的美眉
白嫩丰满美女照片
美女就是美女
China telecom 114 spokesman MeiYanXu2
Absolutely shocked. National geographic 50 animal photographys6
Download software ranking
Wild things 2
Unix video tutorial3
Unix video tutorial4
C#高级编程(第4版)
Rio big adventure
Unix video tutorial1
Tram sex maniac 2 (H) rar bag8
Unix video tutorial9
Professional killers2 data package
Proficient in JavaScript
归海一刀 published in(发表于) 2014/2/10 6:55:19 Edit(编辑)
用php读取xml数据_[PHP教程]

用php读取xml数据_[PHP教程]

用php读取xml数据_[PHP教程]

今天工作上碰到一个问题 由于我们的项目数据太少 所以需要从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文件代码如下:







张三
经理



李四
助理



这个程序的结果如下:


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


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


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


作者:satellite 来源:蓝色理想





添加到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.