2013-07-10 3 views
0

Я работаю над получением некоторых XML-данных в переменную php, поэтому я могу легко называть ее на моей веб-странице html. Я использую этот код ниже:php - xml анализ данных

$ch  = curl_init(); 
$timeout = 5; 

$url = "http://www.dictionaryapi.com/api/v1/references/collegiate/xml/define?key=0b03f103-f6a7-4bb1-9136-11ab4e7b5294"; 

$definition = simplexml_load_file($url); 

echo $definition->entry[0]->def; 

Однако мои результаты:.

Я не уверен, что я делаю неправильно, и я следовал руководству php, поэтому я предполагаю, что это нечто очевидное, но я просто не понимаю его правильно.

Фактические результаты XML из этой ссылке, используемой в Curl открыты, нажав на ссылку ниже, я не отправлял его, потому что это довольно долго:

http://www.dictionaryapi.com/api/v1/references/sd3/xml/test?key=9d92e6bd-a94b-45c5-9128-bc0f0908103d

+1

Он отлично работает ... Что именно вы пытаетесь сделать? (добавьте в поле 'curl_close' и' print_r ($ definition-> entry [0] -> def) вместо столбца "double_colose" вместо "..." это объект SimpleXMLElement) – brbcoding

+1

-> def - это SimpleXMLElement, что вы ожидать, когда эхо? Какую ценность вы действительно пытаетесь отобразить? – tlenss

+0

http://php.net/simplexml.examples-basic - и если вы зададите вопрос о XML/simplexml, вам неинтересно, что вы используете завиток. Вместо этого это можно записать в две строки (только что). Также вам нужно четко указать, каков ваш конкретный вопрос. Почему вы ожидаете, что это сработает? Что вы ожидаете от этого (что это даст)? И т.д, – hakre

ответ

1
<?php 
$ch = curl_init(); 
$timeout = 5; 

$url = "http://www.dictionaryapi.com/api/v1/references/collegiate/xml/define?key=0b03f103-f6a7-4bb1-9136-11ab4e7b5294"; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$data = curl_exec($ch); 
curl_close($ch); // you were missing a semicolon 


$definition = new SimpleXMLElement($data); 
echo '<pre>'; 
print_r($definition->entry[0]->def); 
echo '</pre>'; 

// this returns the SimpleXML Object 


// to get parts, you can do something like this... 
foreach($definition->entry[0]->def[0] as $entry) { 
    echo $entry[0] . "<br />"; 
} 

// which returns 

transitive verb 
14th century 
1 a 
:to determine or identify the essential qualities or meaning of 
b 
:to discover and set forth the meaning of (as a word) 
c 
:to create on a computer 
2 a 
:to fix or mark the limits of : 
b 
:to make distinct, clear, or detailed especially in outline 
3 
: 
intransitive verb 
:to make a 

Working Demo

 Смежные вопросы

  • Нет связанных вопросов^_^