0

私は、PHP と XML を含む小さなプロジェクトに取り組んでいます。ノード内の属性にアクセスすることが困難です。

ノードからアトリビュートにアクセスする例を次に示します。

<?php
$string = <<<XML
<a>
<foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);

foreach ($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?>

foo[0]上記のコードでは、ビットを理解できないようです。たとえば、なぜfoo[0]->att... ただの代わりにあなたがしなければならないのか、私は悩んでいますfoo->att...

お時間をいただきありがとうございます - マイケル・ミッチェル

4

2 に答える 2

0

複数の foo 要素が存在する場合があります。あなたはそれらの最初のものを手に入れています。

于 2012-10-26T10:09:29.433 に答える
0

この式により、 のノードのすべての子要素$xml->fooを反復処理できます。これは、0 個以上の子ノードにすることができます。<foo>$xml

foreach ($xml->foo as $foo)
{
    echo "<foo>\n";
    foreach ($foo->attributes() as $name => $value) {
        echo "$name=\"$value\"\n";
    }
}

したがって、これらすべての 0 個以上の要素の特定の 1 つだけが必要な場合は、どの要素を意味するかを指定する必要があります。これは、配列ブレースを追加することで実行できます。ここでは、ゼロベースの位置です$xml->foo[0]

$foo = $xml->foo[0];
echo "<foo>\n";
foreach ($foo->attributes() as $name => $value) {
    echo "$name=\"$value\"\n";
}
于 2012-10-26T10:09:54.460 に答える