PHP: мыльный клиент xmlattribute

Я пытался использовать PHP-клиент мыло.

Но SOAP XML должен содержать атрибут XML, такой как «opCode = EQ», в этом примере:

     <ws:Query>
....
<com:Properties>
<com:xx>yy</com:xx>
<com:ab>cc</com:ab>
</com:Properties>
<com:QueryCondition>
<com:CmpOp opCode="EQ">
<com:Property>FolderName</com:Property>
<com:Value>AB028</com:Value>
</com:CmpOp>
</com:QueryCondition>
</ws:Query>

Я пытаюсь прочитать это с помощью этого кода:

$this->client = new SOAPClient(__DIR__ . '/WSDL.XML', array(
'trace' => 1,
'exception' => 1
));

$this->client->query((object) array(
// ..
'Properties' => (object) array(
'xx' => 'yy',
'ab' => 'cc'
),
'QueryCondition' => (object) array(
'CmpOp' => (object) array(
'opCode' => 'EQ',
'_' => (object) array(
'Property' => 'FolderName',
'Value' => 'AB028',
),
),
),
));

Но это приводит к:

    <com:QueryCondition>
<com:CmpOp>
<com:Property>FolderName</com:Property>
<com:Value>AB028</com:Value>
</com:CmpOp>
</com:_><com:opCode>EQ</com:opCode></com:_>
</com:QueryCondition>

Может кто-нибудь сказать мне правильный синтаксис?

1

Решение

Все эти вещи с подчеркиванием я нашел в интернете.

Единственное рабочее решение, которое я нашел, это:

$this->client->query((object) array(
// ..
'Properties' => (object) array(
'xx' => 'yy',
'ab' => 'cc'
),
'QueryCondition' => (object) array(
'CmpOp' => new SoapVar(
'<CmpOp opCode="EQ">' .
'<Property>FolderName</Property>' .
'<Value>' . htmlspecialchars('AB028'). '</Value>' .
'</CmpOp>',
XSD_ANYXML
)
),
),
));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]