2012-08-04 49 views
1

如何使用PHP我得到的属性值秒:PHP和XML属性跟进

<yt:duration seconds='12445'/> 

这是我迄今所做的:

 $xmlstr = file_get_contents($xml); 
    $xml_content = new SimpleXMLElement($xmlstr); 
    echo $xml_content->xpath('//yt:duration')->attributes; 
    print_r($xml_content->xpath('//yt:duration')); 
    echo $xml_content->xpath('//yt:duration')->attributes()->seconds; 

,显示这些消息:

Notice: Trying to get property of non-object in C:\xampp\htdocs\ytm\xmlTest.php on line 22 
Array ([0] => SimpleXMLElement Object ([@attributes] => Array ([seconds] => 12445))) 
Notice: Trying to get property of non-object in C:\xampp\htdocs\ytm\xmlTest.php on line 24 

Notice: Trying to get property of non-object in C:\xampp\htdocs\ytm\xmlTest.php on line 24 

回答

2

此:

$xml_content->xpath('//yt:duration') 

返回一个数组(因为你的print_r()会告诉你)。你必须以与对应于<yt:duration>节点的SimpleXMLElement工作抢到的第一个元素(位于索引0):

$list = $xml_content->xpath('//yt:duration'); 
$node = $list[0]; 

然后,你可以得到attibutes与attributes()

$attributes = $node->attributes(); 
echo $attributes['seconds']; // Not 100% sure on this, might be $attributes->seconds 
+0

这工作完美。谢谢 – rob 2012-08-04 20:16:52