使用php解析xml - 获取数组中的属性

时间:2013-03-07 06:38:18

标签: php xml

我有一些xml,我试图用PHP解析以下代码:

$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;

但由于某些原因我无法获得种类和动作属性......路径将起作用,但不是属性

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

由于

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您正在使用正确的方法来访问属性(将其写为使用表示属性名称的字符串键访问数组),但是您在错误的元素上执行此操作:

$root = simplexml_load_file($path);

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

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