2012-04-17 87 views
1

我有一個SimpleXMLElement,並希望在循環利用foreach循環之前檢查一個特定元素是否有非空值。這裏是我的SimpleXMLObject如何從PHP中的此SimpleXMLObject獲取第n個值?

說,這是包含在$ 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) 

陣列內的

[3] => 1243123200000 

這是一個值,我想什麼來檢查這個參數,並確定它不是NULL。如果我想以String的形式抓取它,那麼這將是怎樣的方式。

我希望得到像(字符串)$ myXMLElement [3]之類的東西,但是對於我所嘗試的東西來說這看起來不正確。

+1

我已經認爲,用你最後一個問題,你最好分享更多的代碼,所以它更清楚你實際需要知道什麼。 – hakre 2012-04-17 00:26:20

回答

2

您可以使用數組表示法,但由於該陣列是節點f的一部分,你必須訪問它像這樣:

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

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

在一個不相關的音符,因爲該數組中的第八元素本身就是一個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 Object([@attributes] => Array([id] => 16)) – 2012-04-18 21:45:28

+0

@JosephU。我只是通過獲取屬性的示例更新了答案。 – drew010 2012-04-18 21:50:02

相關問題