Ben xml dosyasında son düğümün niteliğini bulmak istiyorum.
Aşağıdaki kod bulmak ilk düğümün niteliği bulunuyor. Son düğümü bulmak için bir yolu var mı?
foreach ($xml->gig[0]->attributes() as $Id){
}
teşekkürler
Frank Bollack belirtildiği gibi son gig
düğüm olsun, biz XPath'i kullanabilirsiniz.
foreach (current($xml->xpath('/*/gig[last()]'))->attributes() as $attr) {
}
Ya da biraz daha ayrıntılı ama daha güzel:
$attrs = array();
$nodes = $xml->xpath('/*/gig[last()]');
if (is_array($nodes) && ! empty($nodes)) {
foreach ($nodes[0]->attributes() as $attr) {
$attrs[$attr->getName()] = (string) $attr;
}
}
var_dump($attrs);
O (öyle bir <gig/>
düğüm veya başka türlü) son düğümü almak için XPath kullanabilirsiniz doğrudur ama aynı zamanda size ilk düğüm için kullanılan aynı teknikle yansıtabilirsiniz. Bu şekilde:
// first <gig/>
$xml->gig[0]
// last <gig/>
$xml->gig[count($xml->gig) - 1]
Düzenleme: Ben sadece fark ettik, sadece ilk @ id niteliğini ve son <gig/>
düğüm almak için çalışıyoruz? Bu durumda, attributes()
unutun ve yerine SimpleXML notasyonu kullanmak: Onlar Dizi anahtarları sanki nitelikleri erişilir.
$first_id = $xml->gig[0]['id'];
$last_id = $xml->gig[count($xml->gig) - 1]['id'];