Bana adresi veren bir XML belge var. İşte bir alıntı bulunuyor:
<ezi:orderaddresses>
<ezi:orderaddress>
<ezi:addresstype>billing</ezi:addresstype>
<ezi:name>Jason Fonseca</ezi:name>
<ezi:companyname>Cyber</ezi:companyname>
<ezi:address1>8 springstein</ezi:address1>
<ezi:division>NT</ezi:division>
<ezi:postalcode>34245</ezi:postalcode>
<ezi:countrycode>AU</ezi:countrycode>
<ezi:email>jason@bigcreative.com.au</ezi:email>
<ezi:phone>89549854</ezi:phone>
<ezi:mobilephone>984590598</ezi:mobilephone>
</ezi:orderaddress>
<ezi:orderaddress>
<ezi:addresstype>shipping</ezi:addresstype>
<ezi:name>Jason Fonseca</ezi:name>
<ezi:companyname>Cyber</ezi:companyname>
<ezi:address1>8 springstein</ezi:address1>
<ezi:division>NT</ezi:division>
<ezi:postalcode>34245</ezi:postalcode>
<ezi:countrycode>AU</ezi:countrycode>
<ezi:email>jason@bigcreative.com.au</ezi:email>
<ezi:phone>89549854</ezi:phone>
</ezi:orderaddress>
</ezi:orderaddresses>
Iki "OrderAddress" etiketleri üzerinde formatına ek olarak, aynı zamanda, örneğin, bir tane olabilir:
<ezi:orderaddresses>
<ezi:orderaddress>
<ezi:addresstype>billing</ezi:addresstype>
<ezi:name>Jason Fonseca</ezi:name>
<ezi:companyname>Cyber</ezi:companyname>
<ezi:address1>8 springstein</ezi:address1>
<ezi:division>NT</ezi:division>
<ezi:postalcode>34245</ezi:postalcode>
<ezi:countrycode>AU</ezi:countrycode>
<ezi:email>jason@bigcreative.com.au</ezi:email>
<ezi:phone>89549854</ezi:phone>
<ezi:mobilephone>984590598</ezi:mobilephone>
</ezi:orderaddress>
</ezi:orderaddresses>
Ne bulmak ilk etapta, bu yorumlamak için basit xml kullanırken, ben şu olsun ki:
[orderaddresses] => SimpleXMLElement Object
(
[orderaddress] => Array
(
[0] => SimpleXMLElement Object
(
[addresstype] => billing
[name] => Jason Fonseca
[companyname] => Cyber
[address1] => 8 springstein
[division] => NT
[postalcode] => 34245
[countrycode] => AU
[email] => jason@bigcreative.com.au
[phone] => 89549854
[mobilephone] => 984590598
)
[1] => SimpleXMLElement Object
(
[addresstype] => shipping
[name] => Jason Fonseca
[companyname] => Cyber
[address1] => 8 springstein
[division] => NT
[postalcode] => 34245
[countrycode] => AU
[email] => jason@bigcreative.com.au
[phone] => 89549854
)
)
)
Ve ikinci durumda, ben bu olsun:
[orderaddresses] => SimpleXMLElement Object
(
[orderaddress] => SimpleXMLElement Object
(
[addresstype] => billing
[name] => Jason Fonseca
[companyname] => Cyber
[address1] => 8 springstein
[division] => NT
[postalcode] => 34245
[countrycode] => AU
[email] => jason@bigcreative.com.au
[phone] => 89549854
[mobilephone] => 984590598
)
)
The Keen observer will notice that now if I try to access orderaddresses->orderaddress that this would have a different structure depending on whether there are two addresses (or more) or just one address. Example 2 it is a numerically index array, example two it is a an associative object.
Bu standardize etmek, bu gibi görünüyor bazı kod kullandım:
if(!isset($content['orderlines']['orderline'][0]))
{
$temp = $content['orderlines']['orderline'];
unset($content['orderlines']['orderline']);
$content['orderlines']['orderline'][0] =$temp;
}
(Eğer ben burada ilişkilendirilebilir diziler kullanıyorum gerçeğini göz ardı edebilirsiniz, ben bir dönüşüm gerçekleştirir ama ben kontrol ettik ve bu rutin sonuç değişmiyor bir rutin var).
Benim soru, nasıl doğru bu verileri inteperet gerekiyor nedir? Ben OrderAddress ve sipariş hatları erişmeye çalıştığınızda kod her şey o dilim olması gerçekten dağınık. Daha iyi bir yolu yok mudur?
Bu işlemek için benim dönüşüm rutin düzenleme düşüncesi aklımdan geçti. O gitmek için yol olduğunu düşünüyorsanız, o zaman bana bildirin, ama ben kesinlikle bu sorunu çok gelmelidir ve birisi ona akıllı, ve kısa bir çözüm olması gerekir diye düşündüm?
Teşekkürler