Heim > Backend-Entwicklung > PHP-Tutorial > 我想用php读取xml的三个值

我想用php读取xml的三个值

WBOY
Freigeben: 2016-06-23 13:58:29
Original
933 Leute haben es durchsucht

$url="http://www.cailele.com/static/ssc/newlyopenlist.xml";		$doc = new DOMDocument();		$doc->load($url); //读取xml文件		$lst = $doc->getElementsByTagName('row');		for ($i=0; $i<2; $i++) {			$iframe= $lst->item($i);			$t1=$iframe->attributes->getNamedItem('expect')->value;			$t2=$iframe->attributes->getNamedItem('opencode')->value;			$t3=$iframe->attributes->getNamedItem('opentime')->value;			$t1=substr($t1,-9);			kjdata($t2,1,$t1,$t3);		 } 		 
Nach dem Login kopieren

我想读取xml的expec,opencode,opentime三个值,不知道为什么读取不上,求解答


回复讨论(解决方案)

$xml = <<<xml<?xml version="1.0" encoding="utf-8"?><xml><row expect="20140421005" opencode="5,7,3,1,5" opentime="2014-04-21 00:25:30" /><row expect="20140421004" opencode="9,4,7,4,5" opentime="2014-04-21 00:20:30" /><row expect="20140421003" opencode="3,4,4,3,9" opentime="2014-04-21 00:15:30" /><row expect="20140421002" opencode="7,0,2,9,4" opentime="2014-04-21 00:10:30" /><row expect="20140421001" opencode="6,3,8,3,1" opentime="2014-04-21 00:05:30" /><row expect="20140420120" opencode="6,9,3,5,3" opentime="2014-04-21 00:00:30" /><row expect="20140420119" opencode="7,7,0,7,2" opentime="2014-04-20 23:55:30" /><row expect="20140420118" opencode="8,9,4,6,9" opentime="2014-04-20 23:50:30" /><row expect="20140420117" opencode="1,1,2,4,0" opentime="2014-04-20 23:45:30" /><row expect="20140420116" opencode="4,3,8,1,0" opentime="2014-04-20 23:40:30" /></xml>xml;$doc = new DOMDocument();$doc->loadXML($xml); //读取xml文件$items = $doc->getElementsByTagName('row');for ( $i  =  0 ;  $i  <  $items -> length ;  $i ++) {	$t1 = $items -> item ( $i )->getAttribute('expect');//expect的值    $t2 = $items -> item ( $i )->getAttribute('opencode');//opencode的值    $t3 = $items -> item ( $i )->getAttribute('opentime');//opentime的值    var_dump($t1.'|'.$t2.'|'.$t3);}
Nach dem Login kopieren

经测试,你的代码没有问题
问题在于 $doc->load($url); 取不到值
该 url 用 file_get_contents 也取不到值
只有用 curl 才可取到

取到后可用 $doc->loadXML($str) 载入
然后就可用你的代码处理了

经测试,你的代码没有问题
问题在于 $doc->load($url); 取不到值
该 url 用 file_get_contents 也取不到值
只有用 curl 才可取到

取到后可用 $doc->loadXML($str) 载入
然后就可用你的代码处理了


能不能帮我发一下改了以后的代码,万分感谢

$url = "http://www.cailele.com/static/ssc/newlyopenlist.xml";$doc = new DOMDocument();$doc->loadXML(curl_get($url));$lst = $doc->getElementsByTagName('row');for ($i=0; $i<2; $i++) {  $iframe= $lst->item($i);  $t1=$iframe->attributes->getNamedItem('expect')->value;  $t2=$iframe->attributes->getNamedItem('opencode')->value;  $t3=$iframe->attributes->getNamedItem('opentime')->value;  $t1=substr($t1,-9);  kjdata($t2,1,$t1,$t3);}function kjdata() {  echo join(', ', func_get_args()), PHP_EOL;}function curl_get($durl) {  $cookiejar = realpath('cookie.txt');  $t = parse_url($durl);  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL,$durl);  curl_setopt($ch, CURLOPT_TIMEOUT,5);  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);  curl_setopt($ch, CURLOPT_REFERER, "http://$t[host]/");  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  $r = curl_exec($ch);  curl_close($ch);  return $r;}
Nach dem Login kopieren
Nach dem Login kopieren
5,9,6,4,2, 1, 140421023, 2014-04-21 01:55:30
7,6,4,2,4, 1, 140421022, 2014-04-21 01:50:30

不错不错不错不错

$url = "http://www.cailele.com/static/ssc/newlyopenlist.xml";$doc = new DOMDocument();$doc->loadXML(curl_get($url));$lst = $doc->getElementsByTagName('row');for ($i=0; $i<2; $i++) {  $iframe= $lst->item($i);  $t1=$iframe->attributes->getNamedItem('expect')->value;  $t2=$iframe->attributes->getNamedItem('opencode')->value;  $t3=$iframe->attributes->getNamedItem('opentime')->value;  $t1=substr($t1,-9);  kjdata($t2,1,$t1,$t3);}function kjdata() {  echo join(', ', func_get_args()), PHP_EOL;}function curl_get($durl) {  $cookiejar = realpath('cookie.txt');  $t = parse_url($durl);  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL,$durl);  curl_setopt($ch, CURLOPT_TIMEOUT,5);  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);  curl_setopt($ch, CURLOPT_REFERER, "http://$t[host]/");  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  $r = curl_exec($ch);  curl_close($ch);  return $r;}
Nach dem Login kopieren
Nach dem Login kopieren
5,9,6,4,2, 1, 140421023, 2014-04-21 01:55:30
7,6,4,2,4, 1, 140421022, 2014-04-21 01:50:30




非常感谢,分都给你了,我还有别的问题,想发帖没分了,可不可以给我点分

给了你 200 可用分

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage