2013-03-07 103 views
0

中获得的属性我有一些XML,我试图解析用PHP用下面的代码:用PHP解析XML - 一个数组

$data = simplexml_load_file($file_path) 
foreach ($data as $obj): 
    //get author, date, etc 
    ... 
      // get the paths 
      foreach ($obj->paths as $current): 
       $kind = $current['kind']; 
       $action = $current['action']; 
       $path = $current->path; 

,但我不能让那种出于某种原因,action属性。 ..路径将工作,但不是属性

的XML看起来是这样的:

<log> 

<logentry 
    revision="xxxx"> 
    <author>xyz</author> 
    <date>my date</date> 
    <paths> 
     <path 
      kind="file" 
      action="M">/myPath/woohoo</path> 
     <path.... *more paths* 
    ....more logentries 

感谢

回答

0

您正在使用正确的方法来访问属性(写像访问与​​代表属性的名称字符串数组中的键),但是你这样做是错误的元素:

$root = simplexml_load_file($path); 

foreach ($root->logentry->paths as $current) 
{ 
    $path = $current->path; 
    $kind = $path['kind']; 
    $action = $path['action']; 
} 

如本例所示,您需要访问$path上的属性,而不是$current上的属性。就这样。你可能刚刚看过,因为$path变量已经在你的问题中。

2

使用$current->attributes()来获取它们。