您好,感谢您的帮助,
我正在使用 PHP 编写 XML 请求,我遇到的问题是当我在值字段中使用变量时,它返回错误。但是,当我手动输入值时,它可以完美运行。在字段 name='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.",则回显的返回响应。是:
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>