0

0

XML 解析错误:格式不佳?求解

php中文网

php中文网

发布时间:2016-06-20 12:29:18

|

3178人浏览过

|

来源于php中文网

原创

xml 解析错误:格式不佳位置:http://www.xxx.com/admin/order.php?act=operate行 1,列 6:http://xxx.com/wuliu.php?request=<?xml version='1.0' encoding='utf-8'?>-----^

提示这个错误
        $wj_curl = new wj_curl();        //var_dump($wj_curl :: ss());        $resr = $wj_curl -> xmlencode($requestorderviews);        //print_r($resr);        $url = 'http://xxxx.com/wuliu.php?request='.$resr.'&md5='.$md5.'&action=requestorder';        print_r($url);

我是这样打印的,$resr是一个xml数据。格式是正确的如下
requestorder><waybillno>wjys2016050564377</waybillno><clientcode>2016050564377</clientcode><holiday>1</holiday><replcost>0</replcost><stmtform>1</stmtform><trustclientcode>421</trustclientcode><trustperson>仓库</trustperson><trustunit>迁安市电子商务服务中心</trustunit><trustzipcode>064400</trustzipcode><trustprovince>河北省</trustprovince><trustcity>唐山市</trustcity><trustarea>迁安市</trustarea><trustaddress>迁安电商谷</trustaddress><trustmobile>0315-7572555</trustmobile><trusttel>0315-7572555</trusttel><getperson>乔鹤</getperson><getunit>25号楼四单元301</getunit><getzipcode>064400</getzipcode><getprovince>河北省</getprovince><getcity>迁安市</getcity><getarea>5 大王庄平改楼</getarea><getaddress>25号楼四单元301</getaddress><gettel>15232682888</gettel><getmobile>15232682888</getmobile><insform>0</insform><insurevalue>0</insurevalue><worktype>0</worktype><ordertype>普通订单</ordertype><goodsinfo><good><goodsname>乡伊香核桃油  1000ml</goodsname><goodsvalue>168.00</goodsvalue><goodsbarcode>6944219400234</goodsbarcode><listtype>0</listtype><isinvoice>0</isinvoice></good></goodsinfo><goodsnum>1</goodsnum><goodshav>0</goodshav></requestorder>

我不明白的是 这里的$url我只是给xml拼接进去了就给报错?这是为什么?我的目的向一个借口发送xml数据,我打算通过curl post方式 发送。
下面是我的curl
public static function my_curl($uri,$xmldata=array()){        $url = $uri;  //接收xml数据的文件        $header = array("content-type: application/x-www-form-urlencoded;");        //定义content-type为xml,注意是数组        $ch = curl_init ($url);        curl_setopt($ch, curlopt_url, $url);        curl_setopt($ch, curlopt_returntransfer, true);        curl_setopt($ch, curlopt_httpheader, $header);        curl_setopt($ch, curlopt_post, 1);        curl_setopt($ch, curlopt_postfields, $xmldata);        $response = curl_exec($ch);        if(curl_errno($ch)){            print curl_error($ch);        }        curl_close($ch);    }

完全不知道怎么做求大神们帮助下。

Cliclic AI
Cliclic AI

Cliclic商品背景图编辑器是一款功能强大的AI工具,帮助用户快速生成具有吸引力的商品图背景。

下载


回复讨论(解决方案)

你都用post了 为什么要把xml文档放在url上面呢, 然后你模拟的post提交 里面提交的数据还是数组。。。。有点矛盾。。

不知道你要干什么
也不知道对方能接收什么

我发现 只要是在xml数据前面加上任何字符。都会提示格式不加。  那他的接口要求的数据格式

请求采用HTTP标准的POST协议采用,请求参数通过xml格式,验证的模式定为MD5验证。抛送格式为:http://*****.php?Request=Xml&MD5=XXX&Action=请求指令。编码格式为:UTF-8 
我怎么给他发过去啊???

这是他的整个数据请求

http://xxx.xx.xx.xxx:850/order.php?Request=<RequestOrder>	< WaybillNo>1111102354</ WaybillNo>< ClientCode>Sp001</ ClientCode>< Holiday>1</ Holiday>< ReplCost>20.2</ ReplCost>< StmtForm>0</ StmtForm>< TrustClientCode>111234</ TrustClientCode><TrustPerson>王三</ TrustPerson>< TrustUnit>好乐买</ TrustUnit>< TrustZipCode>001</ TrustZipCode><TrustProvince>北京</ TrustProvince>< TrustCity>北京市</ TrustCity><TrustArea>朝阳区</TrustArea>< TrustAddress>三里屯SOHO大厦3D15层</ TrustAddress>< TrustMobile>13436709024</ TrustMobile>< TrustTel>010-3650092</ TrustTel>< GetPerson>李三</ GetPerson>< GetUnit>XXX公司</ GetUnit>< GetZipCode>010</ GetZipCode>< GetProvince>广东省</ GetProvince><GetCity>深圳市</ GetCity><GetArea>罗湖区</ GetArea>< GetAddress>人民南路1号京广大厦A406室</ GetAddress>< GetTel>755-3456789</ GetTel>< GetMobile>13436700238</ GetMobile>< InsForm>0</ InsForm>< InsureValue></ InsureValue>< GoodsValue>30.45</ GoodsValue>< WorkType>0</ WorkType><OrderType>xxx< /OrderType><GoodsInfo><Good>< GoodsName>XXX商品</ GoodsName>< GoodsValue >20.34 </ GoodsValue ><GoodsBarCode>00987</ GoodsBarCode><ListType>0</ ListType>< ISInvoice>0< ISInvoice></Good><Good>< GoodsName>YYY商品</ GoodsName>< GoodsValue >20 </ GoodsValue ><GoodsBarCode>00987</ GoodsBarCode><ListType>0</ ListType>< ISInvoice>1< ISInvoice></Good></GoodsInfo><GoodsNum>2</GoodsNum>< GoodsHav>2</ GoodsHav></ RequestOrder>&MD5=SDJ21W3E1WRE1SDF2ER34D1RTRE113DF&Action=RequestOrder

个人拙见:他既然要用post请求, 那http://*****.php 这个就是 url
                    Request=Xml&MD5=XXX&Action=请求指令。
                    这些就是参数,是不是要把这个三个参数组成xml文档?

那你直接get过去就行了啊 

那你直接get过去就行了啊 


将xml数据转换为字符串。然后拼接url好像就行了

不知道你要干什么
也不知道对方能接收什么


我要向一个接口发送数据请求,格式如下
http://xxx.xx.xx.xxx:850/order.php?Request=<RequestOrder>	< WaybillNo>1111102354</ WaybillNo>< ClientCode>Sp001</ ClientCode>< Holiday>1</ Holiday>< ReplCost>20.2</ ReplCost>< StmtForm>0</ StmtForm>< TrustClientCode>111234</ TrustClientCode><TrustPerson>王三</ TrustPerson>< TrustUnit>好乐买</ TrustUnit>< TrustZipCode>001</ TrustZipCode><TrustProvince>北京</ TrustProvince>< TrustCity>北京市</ TrustCity><TrustArea>朝阳区</TrustArea>< TrustAddress>三里屯SOHO大厦3D15层</ TrustAddress>< TrustMobile>13436709024</ TrustMobile>< TrustTel>010-3650092</ TrustTel>< GetPerson>李三</ GetPerson>< GetUnit>XXX公司</ GetUnit>< GetZipCode>010</ GetZipCode>< GetProvince>广东省</ GetProvince><GetCity>深圳市</ GetCity><GetArea>罗湖区</ GetArea>< GetAddress>人民南路1号京广大厦A406室</ GetAddress>< GetTel>755-3456789</ GetTel>< GetMobile>13436700238</ GetMobile>< InsForm>0</ InsForm>< InsureValue></ InsureValue>< GoodsValue>30.45</ GoodsValue>< WorkType>0</ WorkType><OrderType>xxx< /OrderType><GoodsInfo><Good>< GoodsName>XXX商品</ GoodsName>< GoodsValue >20.34 </ GoodsValue ><GoodsBarCode>00987</ GoodsBarCode><ListType>0</ ListType>< ISInvoice>0< ISInvoice></Good><Good>< GoodsName>YYY商品</ GoodsName>< GoodsValue >20 </ GoodsValue ><GoodsBarCode>00987</ GoodsBarCode><ListType>0</ ListType>< ISInvoice>1< ISInvoice></Good></GoodsInfo><GoodsNum>2</GoodsNum>< GoodsHav>2</ GoodsHav></ RequestOrder>&MD5=SDJ21W3E1WRE1SDF2ER34D1RTRE113DF&Action=RequestOrder

格式要求为
请求采用HTTP标准的POST协议采用,请求参数通过xml格式,验证的模式定为MD5验证。抛送格式为:http://*****.php?Request=Xml&MD5=XXX&Action=请求指令。编码格式为:UTF-8 

不知道你要干什么
也不知道对方能接收什么


提供一组数组
Array(    'WaybillNo' => 'wjys2016050564377',    'ClientCode' => '2016050564377',    'Holiday' => '1',    'ReplCost' => '0',    'StmtForm' => '1',    'TrustClientCode' => '421',    'TrustPerson' =>'仓库',    'TrustUnit' => '商务服务中心',    'TrustZipCode' => '064400',    'TrustProvince' => '河北省',    'TrustCity' => '市',    'TrustArea' => '市',    'TrustAddress' => '谷',    'TrustMobile' => '0355',    'TrustTel' => '055',    'GetPerson' => '乔鹤',    'GetUnit' => '25号楼四单元301',    'GetZipCode' => '064400',    'GetProvince' => '河北省',    'GetCity' => '市',    'GetArea' => '平改楼',    'GetAddress' => '25号楼四单元301',    'GetTel' => '15232682888',    'GetMobile' => '15232682888',    'InsForm' => '0',    'InsureValue' => '0',    'WorkType' => '0',    'OrderType' => '普通订单',    'GoodsInfo' => Array        (            'Good' => Array                (                    'GoodsName' => '乡伊香核桃油',                    'GoodsValue' => '168',                    'GoodsBarCode' => '6944219400234',                    'ListType' => '0',                    'ISInvoice' => '0',                ),        ),    'GoodsNum' => 1,    'GoodsHav' => 0,)

既然是 请求采用HTTP标准的POST协议
那么你放在 url 里做什么?

既然是 请求采用HTTP标准的POST协议
那么你放在 url 里做什么?


他给我的例子不是http://xxx.xx.xx.xxx:850/order.php?Request=  xml信息  这样的吗?难道不是放在url中?

好像是的
但应理解为,虽然数据放在了 url 上,但访问方式还是 post 的
即:CURLOPT_POST 为真,CURLOPT_POSTFIELDS 为空(或没有)

用POST方式,需要把数据放在CURLOPT_POSTFIELDS,
而放在url的参数要用GET来获取

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

46

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

178

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

51

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

92

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

227

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

532

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

171

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号