0

我有一些 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;

但由于某种原因我无法获得 kind 和 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

谢谢

4

2 回答 2

2

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

于 2013-03-07T06:41:39.687 回答
0

您正在使用正确的方法来访问属性(编写它就像访问带有表示属性名称的字符串键的数组一样),但是您在错误的元素上执行此操作:

$root = simplexml_load_file($path);

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

如本例所示,您需要访问 on$path和 not on的属性$current。就这样。您可能刚刚忽略了这一点,因为该$path变量已经在您的问题中。

于 2013-03-07T10:48:21.110 回答