位置: 编程技术 - 正文

PHP:xml_parse_into_struct()的用法_XML解析器函数

编辑:rootadmin
xml_parse_into_struct

推荐整理分享PHP:xml_parse_into_struct()的用法_XML解析器函数,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

(PHP 4, PHP 5)

xml_parse_into_struct — 将 XML 数据解析到数组中

说明 int xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] )

该函数将 XML 文件解析到两个对应的数组中,index 参数含有指向 values 数组中对应值的指针。最后两个数组参数可由指针传递给函数。

Note:

xml_parse_into_struct() 失败返回 0,成功返回 1。这和 FALSE 与 TRUE 不同,使用例如 === 的运算符时要注意。

PHP:xml_parse_into_struct()的用法_XML解析器函数

以下范例显示了由该函数生成的数组的内部结构。我们简单地将一个 note 嵌入到一个 para 标记中,解析后我们可以打印出生成的数组的结构:

Example #1 xml_parse_into_struct() 示例

<?php$simple="<para><note>simplenote</note></para>";$p=xml_parser_create();xml_parse_into_struct($p,$simple,$vals,$index);xml_parser_free($p);echo"Indexarrayn";print_r($index);echo"nValsarrayn";print_r($vals);?>

运行以上代码,我们得到的输出将是:

如果您的 XML 文档很复杂,基于该文档的事件处理(Event-driven)解析(基于 expat 扩展库)也会对应的变得复杂。该函数生成的并非 DOM 风格的对象,而是横向的树状结构。因此,我们能够方便的建立表达 XML 文件数据的对象。我们假设以下 XML 文件表示一个关于氨基酸信息的小型数据库:

Example #2 moldb.xml - 分子信息的小型数据库

以下是解析该文档并生成相应对象的代码:

Example #3 parsemoldb.php - 将 moldb.xml 解析到分子(molecular)对象的数组中

<?phpclassAminoAcid{var$name;//aa姓名var$symbol;//三字母符号var$code;//单字母代码var$type;//hydrophobic,charged或neutralfunctionAminoAcid($aa){foreach($aaas$k=>$v)$this->$k=$aa[$k];}}functionreadDatabase($filename){//读取aminoacids的XML数据$data=implode("",file($filename));$parser=xml_parser_create();xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);xml_parse_into_struct($parser,$data,$values,$tags);xml_parser_free($parser);//遍历XML结构foreach($tagsas$key=>$val){if($key=="molecule"){$molranges=$val;//eachcontiguouspairofarrayentriesarethe//lowerandupperrangeforeachmoleculedefinitionfor($i=0;$i<count($molranges);$i+=2){$offset=$molranges[$i]+1;$len=$molranges[$i+1]-$offset;$tdb[]=parseMol(array_slice($values,$offset,$len));}}else{continue;}}return$tdb;}functionparseMol($mvalues){for($i=0;$i<count($mvalues);$i++){$mol[$mvalues[$i]["tag"]]=$mvalues[$i]["value"];}returnnewAminoAcid($mol);}$db=readDatabase("moldb.xml");echo"**DatabaseofAminoAcidobjects:n";print_r($db);?> 在执行完 parsemoldb.php 后,变量 $db 将包含有一个由 AminoAcid 对象组成的数组,该脚本的输出如下:

PHP:xml_set_unparsed_entity_decl_handler()的用法_XML解析器函数 xml_set_unparsed_entity_decl_handler(PHP4,PHP5)xml_set_unparsed_entity_decl_handler建立未解析实体定义声明处理器说明boolxml_set_unparsed_entity_decl_handler(resource$parser,callable$han

PHP:xml_set_start_namespace_decl_handler()的用法_XML解析器函数 xml_set_start_namespace_decl_handler(PHP4=4.0.5,PHP5)xml_set_start_namespace_decl_handler建立起始命名空间声明处理器说明boolxml_set_start_namespace_decl_handler(resource$parser,callable$

PHP:xml_set_element_handler()的用法_XML解析器函数 xml_set_element_handler(PHP4,PHP5)xml_set_element_handler建立起始和终止元素处理器说明boolxml_set_element_handler(resource$parser,callable$start_element_handler,callable$end_element_handl

标签: PHP:xml_parse_into_struct()的用法_XML解析器函数

本文链接地址:https://www.jiuchutong.com/biancheng/275045.html 转载请保留说明!

上一篇:PHP:xml_set_processing_instruction_handler()的用法_XML解析器函数

下一篇:PHP:xml_set_unparsed_entity_decl_handler()的用法_XML解析器函数

  • 一般纳税人委托其他单位加工材料收回后直接对外销售的
  • 物流企业缴纳哪几种税
  • 非盈利组织减免的增值税怎么做账
  • 住宿费收据属于什么凭证
  • 取得研发样品收入
  • 每个季度申报怎么申报?
  • 业务招待费扣除基数的收入包括哪些
  • 小规模纳税人所得税费用怎么算
  • 税屋网官网房屋
  • 资产负债表的其他应付款怎么填列
  • 划拨土地划转是什么意思
  • 外资企业研发中心
  • 销售发票的会计分录怎么做?
  • 管理费用对所得收入影响
  • 商业承兑到期对方不付款如何起诉
  • 分配利润和分配股利
  • 增值税过期未抵扣
  • 进料余料结转的征免方式
  • 季度营业额超过6万需要补税
  • 运输公司购买机票怎么买
  • 公司净资产怎么算的
  • 固定资产不动产和动产的区别
  • 出口的增值税到底怎么算的
  • 延期申报出口退税流程
  • 盈余积累转增资本的条件
  • 对子公司投资款要交税吗
  • 跨年应收账款账务错误怎么调整
  • 为什么win7系统添加语言包
  • anyproxy提高公众号文章采集效率
  • 小规模纳税人和一般纳税人哪个好
  • 前端项目中遇到的最大困难,怎么解决的
  • 住房贷款利息支出专项附加抵扣
  • 代垫运费增值税怎么算
  • Symfony2实现在controller中获取url的方法
  • cobit框架
  • laravel artisan命令
  • 智能优化算法书籍推荐
  • pyqt5如何安装
  • 专利收费的职能包括
  • 股票收益缴纳个人所得税吗
  • 灵活就业收入是填多好还是填少好
  • 未达起征点的增值税怎么账务处理
  • 帝国cms使用手册
  • 餐饮公司分店营销方案
  • 增值税发票抵扣联的作用
  • 银行承兑汇票回头背书
  • 数据库用户名称
  • 注销公司流程超详细
  • 填写备案信息的目的
  • 如何编制试算平衡表图示
  • 车辆购置税如何账务处理
  • 逾期的押金收入
  • 投资损益科目
  • 公司支付宝账户提现需要手续费吗
  • 费用报销单和支付证明单的区别
  • 飞机票退票费如何开票
  • 管理费用里包括哪些费用
  • 资本公积只能转现金吗
  • 企业如何开户流程
  • 全资子公司合并报表编制
  • 微信公众平台在哪里打开
  • mysql数据库基本知识点总结
  • 关机并重启是怎么回事
  • 不一样的萧先生
  • 怎样设置windows不更新
  • FastDFS4和Ubuntu12安装及部署步骤
  • 本地hosts文件存在问题
  • window7系统中的桌面指什么
  • win7旗舰版提示不是正版
  • linux在vim编辑器中,将光标移动
  • windows10储存
  • opengl示例
  • javascript学习指南
  • python语言中
  • javascript缓存
  • python二分查找非递归
  • 医保所属期起和所属期止
  • 支持国税普通发展的原因
  • 增值税专票红冲退税
  • 广东省地税总局领导班子
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设