Bu soru burada zaten bir cevabı var:
Ben çok iyi php biliyorum, ama olmalı değil mi:
$result["cardNum"] = (new SimpleXMLElement($data))->xpath('///givexNumber')[0]
ile aynı
$xml = new SimpleXMLElement($data);
$r = $xml->xpath('///givexNumber');
$result["cardNum"] = $r[0];
Edit Jul 2013: Evet PHP 5.4 yana yapar. Küçük düzeltme ile ekledim. Yani şu an itibariyle PHP tüm stabil (non-end-of-yaşam) sürümleri desteklemektedir gelir.
PHP < (Bir işlev veya yöntem çağrısı sonucu inceleyebilirsiniz dizi destekler) 5.4 yardımı ile ya ilk öğeye erişmek list
a> yapabilirsiniz:
list($result["cardNum"]) = $xml->xpath('//givexNumber');
PHP 5.4 beri daha yalındır bulunuyor:
$result["cardNum"] = $xml->xpath('//givexNumber')[0];
Özen xpath yöntemi en az bir elemanı ile bir dizi döndürür eğer herhangi bir bildirimde bulunulmaksızın bu tek iş. Eğer bu konuda emin değiliz ve varsayılan bir değer gerekiyorsa, bu dizi sendika operatörü kullanılarak elde edilebilir.
PHP < 5.4 varsayılan dönüş değeri kod NULL
olacaktır:
list($result["cardNum"]) = $xml->xpath('//givexNumber[1]') + array(NULL);
Bu benzer + PHP 5.4 için, burada bir yarar sadece köşeli parantez ile yeni dizi sözdizimi:
list($result["cardNum"]) = $xml->xpath('//givexNumber[1]') + [NULL];
De bakınız:
Eğer sadece bir eleman bekliyoruz Çünkü Note in the margin:, zaten XPath tarafından birden fazla dönüş olmamalıdır:
$result["cardNum"] = $xml->xpath('//givexNumber[1]')[0]; ###