php中SimpleXml处理

    最近在做盛付宝网关支付接入的时候,把相关的一些配置信息写在了xml文档里,然后封装了一个配置类(用SimpleXml扩展)来取这个文档的数据.一开始直接以提交表单的方式和对方联调接口,比较顺利就完成了对接。但考虑到之后要在项目的多个地方应用到这个网关支付,直接提交表单的方式很不方便,所以自己就试着封装了一个方法来模拟表单的提交,以后应用的话只需要调用这个方法便成。但在封装后调用时发现,网关页面一直提示参数错误,于是我开始怀疑自己封装的方法有问题,从参数类型到参数值到参数顺序到加密串最后到加密方式检查了个遍也没检查出个所以然。。。正当哥处于崩溃之际,我突然想到,simplexml是一个面向对象处理的组件,莫非由它取出来的节点值(比如$doc->rss->channel->item->title)也是一个对象!!!不多说,马上测试,结果发现果真如此,比如一个title节点值为3,则其取出的值为数组对象”array([0]=>3)“(我崩溃。。。),于是我换成了DOMDocument读取值,测试通过,网关充值也正常,哎。。。悲剧.
    后来又发现,通过simplexml对象取出来的节点值经过类型强制转换之后也可得到最终的值。。。原来原因都出在自己基础不够扎实,以后一定要多注意一些细节问题。。。

你可能感兴趣的:(PHP,职场,休闲,simplexml)