SimpleXMLElement Değer Seçim Özellik

2 Cevap php

Neden yerine indeksi daha öznitelik değeri sonuçları filtre değil mi?

Böyle bir şey başarısız olur.

foreach ($portfolio->clientGroup[$id]->client['name=foo']->src as $src) {
   echo $src . '<br />';
}

Ama bu işleri.

foreach ($portfolio->clientGroup[$id]->client[0]->src as $src) {
   echo $src . '<br />';
}

2 Cevap

SimpleXML hafif bir uygulaması olduğu için bu işe yaramaz. Ayrıca, size bir şartname yoksa anything çalışmak için kabul edemeyiz.

Sen xpath function, yani SimpleXMLElement objeleri arıyoruz:

foreach ($portfolio->clientGroup[$id]->xpath("client[@name='foo']/src") as $src) {
   echo $src . '<br />';
}

SimpleXML iç içe geçmiş bir dizi şeklinde belgeye erişim sağlar. Dizi indeksi gibi bir XPath ifadesi yerleştirmek için hiçbir yolu yoktur.

Böyle bir şey deneyin:

$query = "client[@name='foo']/src"; // if name is an attribute
$query = "client[name='foo']/src";  // if name is a child element

foreach ($portfolio->clientGroup[$id]->xpath($query) as $src ) {
   echo $src . '<br />';
}