0

私はこれについて髪を引っ張ってきました、私は本当に私が助けを得ることができることを願っています. 前もって感謝します!

次のような SimpleXML オブジェクトがあります。

Object
(
|    SomeStuff Object
|    (
|    )
|    Entries Object
|    (
|    |    Entry Object
|    |    (
|    |    |    SomeMoreStuff Object
|    |    |    (
|    |    |    )
|    |    |    ImportantStuff Object
|    |    |    (
|    |    |    |    W1 Object
|    |    |    |    (
|    |    |    |    |    D1 Object
|    |    |    |    |    (
|    |    |    |    |    )
|    |    |    |    |    D2 Object
|    |    |    |    W2 Object
|    |    |    |    (
|    |    |    |    |    D1 Object
|    |    |    |    |    (
|    |    |    |    |    )
|    |    |    |    |    D2 Object

...など。何らかの理由で、次のコードを使用すると予期しない結果が生じます。

foreach($xml->Entries->Entry->ImportantStuff as $key => $value) {
   echo "$key, $value";
}

ImportantStuff,各 の行の代わりに出力するだけD#です。別の状況では、ImportantStuff の各メンバーが同じ名前を持つオブジェクトがあり、この場合はすべてのImportantThings$xml->ImportantStuff->ImportantThingを返すを使用します。重要なものの名前が異なる場合、これをどのようにエミュレートできますか?

4

1 に答える 1

2

simplexml を使用して、このように foreach を実行する必要があります

foreach($xml->Entries->Entry->ImportantStuff->children() as $key => $value) { echo "$key, $value"; }

于 2012-10-06T08:33:21.650 に答える