0

次のコードを使用して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;

しかし、何らかの理由で種類とアクションの属性を取得できません...パスは機能しますが、属性は機能しません

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ではなく onの属性にアクセスする必要があります$current。それで全部です。$path変数がすでに質問に含まれていたため、おそらくそれを見落としただけです。

于 2013-03-07T10:48:21.110 に答える