В основном создается клиент SOAP, и часть требуемого ввода форматируется следующим образом:
<Attributes>
<Attribute>
<AttributeType>HomeType</AttributeType>
<Value>duplex</Value>
</Attribute>
<Attribute>
<AttributeType>Bedrooms</AttributeType>
<Value>2</Value>
</Attribute>
<Attribute>
<AttributeType>Bathrooms</AttributeType>
<Value>2</Value>
</Attribute>
</Attributes>
Это публикуется через массив:
$homeType = array (
'AttributeType' => 'HomeType',
'Value' => $_POST['hometype']
);
$bedrooms = array (
'AttributeType' => 'Bedrooms',
'Value' => $_POST['bedrooms']
);
$bathrooms = array(
'AttributeType' => 'Bathrooms',
'Value' => $_POST['bathrooms']
);
$attributes = array (
'Attribute' => $homeType,
'Attribute' => $bedrooms,
'Attribute' => $bathrooms
);
И, как вы можете себе представить, все, что возвращает Array, — это последний атрибут, поэтому xml выглядит так:
<Attributes>
<Attribute>
<AttributeType>Bathrooms</AttributeType>
<Value>2</Value>
</Attribute>
</Attributes>
Я не могу придумать никакого практического способа обойти это, так как атрибуты могут насчитываться до 30-50, поэтому я не хочу их численно указывать, тем более что массив вызывается только как:
'Attributes' => $attributes,
Любая помощь будет принята с благодарностью!