I want to extract from this XML file:"ENTRY_URL where TITLE = Episodul 1: Pilot"
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>MATERIAL_ID</name>
<value>
<i4>5464</i4>
</value>
</member>
<member>
<name>TITLE</name>
<value>
<string>Episodul 1: Pilot</string>
</value>
</member>
<member>
<name>MESSAGE</name>
<value>
<string></string>
</value>
</member>
<member>
<name>ENTRY_URL</name>
<value>
<string>
http://www.ufilme.ro/load/under_the_dome_online/sezonul_1/episodul_1_pilot/674-1-0-5464
</string>
</value>
</member>
<member>
<name>CATEGORY_NAME</name>
<value>
<string>Sezonul 1</string>
</value>
</member>
<member>
<name>CATEGORY_URL</name>
<value>
<string>http://www.ufilme.ro/load/under_the_dome_online/sezonul_1/674</string>
</value>
</member>
<member>
<name>COMMENTS_NUM</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>COMMENTS_URL</name>
<value>
<string>
http://www.ufilme.ro/load/under_the_dome_online/sezonul_1/episodul_1_pilot/674-1-0-5464#comments
</string>
</value>
</member>
<member>
<name>USER_NAME</name>
<value>
<string>uFilme</string>
</value>
</member>
<member>
<name>USER_ID</name>
<value>
<i4>1</i4>
</value>
</member>
<member>
<name>RATING</name>
<value>
<string>0.0</string>
</value>
</member>
<member>
<name>RATED</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>READS_NUM</name>
<value>
<i4>1246</i4>
</value>
</member>
<member>
<name>LOADS_NUM</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>DATE</name>
<value>
<string>11.07.2013</string>
</value>
</member>
<member>
<name>TIME</name>
<value>
<string>5:58 PM</string>
</value>
</member>
<member>
<name>TIMESTAMP</name>
<value>
<i4>1373554697</i4>
</value>
</member>
</struct>
</value>
<value>
...
</value>
...
</data>
</array>
</value>
</param>
</params>
</methodResponse>
I tryed a code that i found on internet
$xml = simplexml_load_string($catapi);
$results = $xml->xpath('//methodResponse/params/param/array/data/value/struct/member/name[. = "TITLE"];
but it does not make logic :| here is an live example : http://www.ufilme.ro/api/load/under_the_dome_online/sezonul_1/674?apikey=raxeIJAb5ZnwoGn3
The XML you have is not only XML, it is actually an XML-RPC response you can decode with the according PHP function named xmlrpc_decode
and then just access the element:
$filter = function($key, $value) {
return function(array $entry) use ($key, $value) {
return isset($entry[$key]) && $entry[$key] === $value;
};
};
$titleFilter = $filter('TITLE', 'Episodul 1: Pilot');
$array = xmlrpc_decode(file_get_contents($url), 'utf-8');
$result = array_filter($array, $titleFilter);
echo array_values($result)[0]['ENTRY_URL']; // prints "http://www.ufilme.ro/load/under_the_dome_online/sezonul_1/episodul_2_the_fire/674-1-0-5465"
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.