Разасс, вам абсолютно необходимо изменить способ отображения SimpleXML. Забудьте об объектах и массивах. не проверяйте свой SimpleXMLElement
с var_dump()
, иначе вы будете в замешательстве. Вы определенно должны не помещать узлы в массивы для доступа к ним, это не имеет смысла.
В SimpleXML вы получаете доступ к узлам, используя ->
(например, свойство объекта) и к атрибутам, как если бы они были индексами массива. Например
$xml->node;
$xml['attribute'];
Вместо публикации вывода var_dump()
опубликуйте исходный XML. Например, если вы угадаете ваш фактический XML, код будет выглядеть примерно так:
$Pricings = simplexml_load_string(
'<Pricings>
<Pricing MType="A" PType="JBN">
<PSNumber>19753</PSNumber>
<CCode>USD</CCode>
<EDate>2008-12-19</EDate>
<Price>218.23</Price>
</Pricing>
<Pricing MType="B" PType="XYZ">
<PSNumber>12345</PSNumber>
<CCode>USD</CCode>
<EDate>2008-12-19</EDate>
<Price>218.23</Price>
</Pricing>
</Pricings>'
);
// value of the first node's @PType
$Pricings->Pricing[0]['Ptype'];
// value of the first node's Price
$Pricings->Pricing[0]->Price;
// value of the second node's @PType
$Pricings->Pricing[1]['Ptype'];
Если ваш код более сложен, чем вы, вы делаете это неправильно и вы только напрашиваетесь на неприятности. Помните, что он называется Simple XML.