您好,感谢您的帮助,
我使用PHP编写XML请求,我遇到的问题是当我在值字段中使用变量时,它会返回错误.但是,当我手动写入值时,它可以完美地工作.
在字段名称=’Serial_Number’下,您将看到$MREPSerial是变量,让我们假设
在PHP中我们有$MREPSerial =’A-000-1042′;以下XML会出错.但是,如果我只用XML中的值替换$MREPSerial它就会成功.任何帮助将不胜感激.谢谢!
$MREPSerial = htmlspecialchars(strtoupper($_POST['NSMREP'])); echo "Hi".$MREPSerial; <ZohoCreator> <applicationlist> <application name='ajout-de-materiel'> <formlist> <form name='MREP'> <update> <criteria> <field name='Serial_Number' compOperator='Equals' value={$MREPSerial}></field> <reloperator>AND</reloperator> <field name='MREP_Type' compOperator='Equals' value='0'></field> </criteria> <newvalues> <field name='Is_being_Used' value='TRUE'></field> </newvalues> </update> </form> </formlist> </application> </applicationlist> </ZohoCreator>";
…
echo上的返回响应(包括我回显的XML)
A-000-1012HI! <?xml version="1.0" encoding="UTF-8" ?> <response><errorlist><error><code>2830</code><message><![CDATA[Open quote is expected for attribute "value" associated with an element type "field".]]></message></error></errorlist></response>
如果我将它更改为’“.$MREPSerial.”对echo的返回响应.是:
A-000-1012HI! <?xml version="1.0" encoding="UTF-8" ?> <response><result><form name="MREP"><update><criteria><field name="Serial_Number" compOperator="Equals" value=""></field><reloperator>AND</reloperator><field name="MREP_Type" compOperator="Equals" value="0"></field></criteria><newvalues><field name="Is_being_Used"><value><![CDATA[TRUE]]></value></field></newvalues> <status>Failure,No Records Found With Specified Criteria</status></update></form></result></response>
解决方法
您需要围绕value属性的实际值引用,如下所示:
<field name='Serial_Number' compOperator='Equals' value='{$MREPSerial}'></field>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。