Home > Backend Development > PHP Tutorial > 我想用php读取xml的三个值

我想用php读取xml的三个值

WBOY
Release: 2016-06-23 13:58:29
Original
950 people have browsed it

$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);		 } 		 
Copy after login

我想读取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);}
Copy after login

经测试,你的代码没有问题
问题在于 $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;}
Copy after login
Copy after login
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;}
Copy after login
Copy after login
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 可用分

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template