2009-03-09 24 views
1

Bir XML dosyasından geçen bir PHP betiğim var, ama bir değer için bir dizi arayabildiğim gibi, nesneyi bir değer için aramak istiyorum.Nesnede bir değeri nasıl arayabilirim?

PHP.net hakkındaki yorumlara göre, array_search(), PHP5'ten itibaren nesneleri destekler, ancak çalışmasını alamıyorum.

XML dosyası, veri yolu duraklarının listesidir ve eşleşen bir veri yolu durağından sonra nesneyi arayabilmek istiyorum.

$xml = new SimpleXMLElement(file_get_contents("StopPointList.xml")); 

foreach ($xml->StopPoint as $stop) 
{ 
    echo $stop->StopName.'<br />'; 
} 

Ve başvuru için

, otobüs durağı XML dosyası şuna benzer::

<?xml version="1.0" encoding="ISO-8859-1"?> 
<StopPointList NetworkVersion="20080828"> 
    <StopPoint> 
     <DISID>3012086:2</DISID> 
     <PositionNumber>2</PositionNumber> 
     <StopPointName>2</StopPointName> 
     <StopName>Sinsenveien</StopName> 
    </StopPoint> 
    <StopPoint> 
     <DISID>2160364:2</DISID> 
     <PositionNumber>2</PositionNumber> 
     <StopPointName>2</StopPointName> 
     <StopName>Rogneskjær</StopName> 
    </StopPoint> 
</StopPointList> 

Ben mümkün do olmak istiyorum geçerli kod şöyle

, sadece durur listeler böyle bir MySQL benzeri arama:% search%

Bunu nasıl yapabilirim?

cevap

2

Ben XPath (the spec/a tutorial) için yapılmış olduğunu söyleyebilirim.

Örneğin: "Sinsen" içeren bir adla tüm durak noktaları bulmak için, bu XPath ifadesi kullanmak olacaktır:

 
//StopPoint[contains(StopName, 'Sinsen')] 

PHP bunu yapmak için SimpleXML (SimpleXMLElement::xpath) kullanabilirsiniz.

+0

Bu işe yarıyor! Teşekkürler! Ama başka bir sorum var. Arama durumunu nasıl duyarsız hale getirebilirim? :) –

+0

Bir sonraki Yığın Taşması sorusu için mükemmel bir malzemedir. :-) – Tomalak

+0

Oh, ve ingilizce olmayan alfabe için çalışan bir çözüm istediğinizi belirtmeyi unutmayın. – Tomalak

İlgili konular