2009-07-26 8 views
1

Hallo, ich habe das folgende Problem.Finden mit php spezifischen Parametern in XML

Ich habe e XML-Datei und ich kenne den Wert von "uniquename = value2". Ich möchte den Wert der URL extrahieren.

<set uniquename="value1"> 
    <items> 
    <item> 
     <units> 
     ... 
     </units> 
    </item> 
    <item> 
     <units> 
     ... 
     <url>http://www.something</url> 
     ... 
     </units> 
    </item> 
    </items> 
</set> 
<set uniquename="value2"> 
    <items> 
    <item> 
     <units> 
     ... 
     </units> 
    </item> 
    <item> 
     <units> 
     ... 
     <url>http://www.something2</url> 
     ... 
     </units> 
    </item> 
    </items> 
</set> 

Jemand hat Vorschläge?

Danke an alle.

Antwort

4

Sie können es einfach mit simplexml und xpath:

$x = simplexml_load_string($xml); 
$nodes = $x->xpath('set[@uniquename="value2"]/items/item/units/url'); 

$url = (string)$nodes[0]; 
+0

+1, einfache und saubere Lösung. Ich hatte angefangen mit einer Antwort über Simplexml zu antworten, und dann wurde mir klar, dass ich nicht viel damit gearbeitet hatte und ich nicht sicher war, wie die Objektstruktur aussehen würde oder wie man darauf zugreifen könnte. Das ist es, was ich an SO liebe ... du lernst immer etwas. – zombat

+1

Hoppla, nitpick Punkt. Die XML-Datei des Posters befindet sich in einer Datei. Sie sollten also stattdessen 'simplexml_load_file()' verwenden. – zombat

Verwandte Themen