2012-04-17 4 views
1

私はSimpleXMLElementを持っていて、特定の要素が空でない値を持っているかどうかをチェックしてから、foreachループを利用してループします。ここでPHPでこのSimpleXMLObjectからn番目の値を取得するにはどうすればよいですか?

[3] => 1243123200000 

これは、の値は、私は、このパラメータをチェックしていることを決定したいものを

が、これは$ myXMLElementアレイ内

SimpleXMLElement Object ([f] => Array ([0] => Marcus [1] => Smith [2] => Brown University [3] => 1243123200000 [4] => Masters [5] => TestValue [6] => TestValue2 [7] => 4 [8] => SimpleXMLElement Object ([@attributes] => Array ([id] => 16)) [9] => 0) [update_id] => 1325795135203) 

に含まれていると言う私のSimpleXMLObjectされていますNULLではありません。もし私がそれを弦としてつかみたいのであれば、これを行う方法は何でしょうか。

私は(文字列)$ myXMLElementのようなものを期待していた[3]それは私がしようとしています何のために正しい構文ではありません。

+1

私はすでにあなたの最後の質問と、あなたのコードの多くを共有していることを良いだろうと思ったので、あなたが実際に知っておくべきことがより明らかです。 – hakre

答えて

2

あなたは配列表記を使用することができますが、配列は、あなたがこのようにそれにアクセスする必要がfノードの一部であることから:無関係なノートで

$val = $xmlObj->f[3]; 

if (empty($val)) { 
    // its empty 
} 

、その配列の8番目の要素は、それ自体であるため、 SimpleXMLはオブジェクト、あなたはこのようにその値にアクセスします。これらのケースでは

$val = $xmlObj->f[8]->update_id; 

、オブジェクトへのアクセスと配列アクセス表記のそのわずかミックス。

あなたはまた、配列表記を使用することができ、第8要素から属性を取得するには、次の

$id = $xmlObj->f[8]['id']; // get "id" attribute 

ページBasic SimpleXML UsageにはSimpleXMLオブジェクトとは別の要素にアクセスする方法を示すいくつかの非常に有用な例があります。例5は、access attributesの方法を示しています。

+0

フィールド8では、@attributes配列にどのようにIDを取得しますか? [8] =>にSimpleXMLElementオブジェクト([@attributes] =>アレイ([ID] => 16)) –

+0

@JosephU。私はちょうど属性を得ることに関する例で答えを更新しました。 – drew010

関連する問題