位置: 编程技术 - 正文

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解析器函数

  • 广播影视服务税率2023
  • 收到退回的款项怎么做分录
  • 财务报表和信息的区别
  • 弃置费用的现值p/f
  • 红字发票开错了已上传如何作废
  • 绿化税票多少税率
  • 项目转包是什么意思
  • 自然人管理系统银行信息
  • 服务类公司没有营业执照
  • 房屋租赁费增值税专用发票几个点
  • 工程造价咨询服务流程
  • 无形资产发生减值的原因
  • 政府补助计入资本公积是老准则吗
  • 当月作废的采购发票已认证账务如何处理?
  • 收到电子承兑汇票的账务处理
  • 个人股东从公司借款合法吗
  • 增值税减征方式有哪些?
  • 金税四期具体内容
  • 非营业活动交增值税吗
  • sd标准差是什么意思
  • 个税申报中工资薪金是不是全年实际工资
  • 融资租赁与经营租赁的相同点
  • 开票方开错发票
  • gitlab lint
  • 腾讯电脑管家怎么修复dll
  • 购进商品售价金额核算
  • 飞机票开电子发票是电子行程单吗
  • 如何加快身体的新陈代谢
  • linux设置权限规则
  • mmc.exe是什么进程
  • 如何找到您会获得的权限
  • 小规模纳税人差额征税
  • 退货时可以按部分退货吗
  • 民非企业保险支出包括
  • redis 缓存框架
  • thinkphp+vue
  • update命令怎么用
  • 跟郑老师学会计建筑业账务处理
  • phpcms怎么样
  • 没收的定金收入怎么入账
  • 材料短缺计入成本吗
  • 管理费用主要核算内容包括什么?
  • 建筑企业预缴的增值税怎么抵扣
  • 框架合同的印花税
  • 生育津贴是否需要缴纳增值税
  • 公对公退款是不是很麻烦
  • 制作费用和管理费用
  • 增值税销项税额属于什么科目
  • 增值税及附加税计算公式
  • 去银行提取备用金不是会计本人需要给谁打电话
  • 企业收到宣传费怎么做账
  • 补提当年折旧会计分录
  • 招标代理服务费取费标准
  • 景区如何管理和服务
  • 小型润滑油生产设备要哪些
  • 特殊事项税务处理
  • 账实不符怎么调账
  • mysql必知必会在线阅读
  • mysql存储引擎的作用
  • 电脑待机状态下载会继续吗
  • windows后台启动VirtualBox虚拟机让界面不在出现
  • ubuntu添加环境变量后黑屏
  • centos怎么查看文件
  • 怎么清理win7
  • 苹果预计10.1-15号到能准确吗
  • win10通过任务管理器打开设置
  • 怎样用在js中使用css的内容
  • linux u+s
  • unity3d Human skin real time rendering plus 真实模拟人皮实时渲染 plus篇
  • Node.js中的全局对象有
  • js 上传
  • 数字图像处理期末考试
  • Python装饰器入门学习教程(九步学习)
  • python模块和包的区别
  • 专项附加扣除修改后,多扣的税
  • 更改税务购票员
  • 税盘上怎么查每个月一共开了多少金额
  • 小规模纳税人网上申报
  • 浙江省医保改革方案2022
  • 小规模纳税人税费怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设