こんにちは、あなたの助けに感謝します、
PHPを使用してXMLリクエストを記述していますが、値フィールドで変数を使用するとエラーが返されるという問題があります。ただし、値を手動で書き込むと、完全に機能します。フィールド名='Serial_Number'の下に、$MREPSerialが変数であることがわかります。PHPに$MREPSerial='A-000-1042'があると仮定しましょう。以下のXMLはエラーになります。ただし、$ MREPSerialをXMLの値だけに置き換えると、成功します。どんな助けでも大歓迎です。ありがとうございました!
$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>";
...エコーでの戻り応答(エコーした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>