2012-09-06 30 views
-1

我需要將XML對象保存到PHP會話中。顯然這是不可能的。因此,我試圖將對象轉換爲一個字符串和一個數組,然後轉換回一個簡單的XML對象,但我嘗試的任何東西似乎都不起作用。隨着var_dump()如下所示,我只需返回空對象。任何人都可以幫忙php將simplexml對象保存到會話中,然後再次將其作爲對象進行檢索

$messages = $this->Message->getAll('50'); //this functions brings back a simplexml object 
$_SESSION['messages'] = $messages->asXML(); //doesn't work    
var_dump($messages); 


array(50) { 
    [0]=> 
    object(SimpleXMLElement)#5 (0) { 
    } 
    [1]=> 
    object(SimpleXMLElement)#6 (0) { 
    } 
    [2]=> 
    object(SimpleXMLElement)#7 (0) { 
    } 
    [3]=> 
    object(SimpleXMLElement)#8 (0) { 
    } 
    [4]=> 
    object(SimpleXMLElement)#9 (0) { 
    } 
    [5]=> 
    object(SimpleXMLElement)#10 (0) { 
    } 
    [6]=> 
    object(SimpleXMLElement)#11 (0) { 
    } 
    [7]=> 
    object(SimpleXMLElement)#12 (0) { 
    } 
    [8]=> 
    object(SimpleXMLElement)#13 (0) { 
    } 
    [9]=> 
    object(SimpleXMLElement)#14 (0) { 
    } 
    [10]=> 
    object(SimpleXMLElement)#15 (0) { 
    } 
    [11]=> 
    object(SimpleXMLElement)#16 (0) { 
    } 
    [12]=> 
    object(SimpleXMLElement)#17 (0) { 
    } 
    [13]=> 
    object(SimpleXMLElement)#18 (0) { 
    } 
    [14]=> 
    object(SimpleXMLElement)#19 (0) { 
    } 
    [15]=> 
    object(SimpleXMLElement)#20 (0) { 
    } 
    [16]=> 
    object(SimpleXMLElement)#21 (0) { 
    } 
    [17]=> 
    object(SimpleXMLElement)#22 (0) { 
    } 
    [18]=> 
    object(SimpleXMLElement)#23 (0) { 
    } 
    [19]=> 
    object(SimpleXMLElement)#24 (0) { 
    } 
    [20]=> 
    object(SimpleXMLElement)#25 (0) { 
    } 
    [21]=> 
    object(SimpleXMLElement)#26 (0) { 
    } 
    [22]=> 
    object(SimpleXMLElement)#27 (0) { 
    } 
    [23]=> 
    object(SimpleXMLElement)#28 (0) { 
    } 
    [24]=> 
    object(SimpleXMLElement)#29 (0) { 
    } 
    [25]=> 
    object(SimpleXMLElement)#30 (0) { 
    } 
    [26]=> 
    object(SimpleXMLElement)#31 (0) { 
    } 
    [27]=> 
    object(SimpleXMLElement)#32 (0) { 
    } 
    [28]=> 
    object(SimpleXMLElement)#33 (0) { 
    } 
    [29]=> 
    object(SimpleXMLElement)#34 (0) { 
    } 
    [30]=> 
    object(SimpleXMLElement)#35 (0) { 
    } 
    [31]=> 
    object(SimpleXMLElement)#36 (0) { 
    } 
    [32]=> 
    object(SimpleXMLElement)#37 (0) { 
    } 
    [33]=> 
    object(SimpleXMLElement)#38 (0) { 
    } 
    [34]=> 
    object(SimpleXMLElement)#39 (0) { 
    } 
    [35]=> 
    object(SimpleXMLElement)#40 (0) { 
    } 
    [36]=> 
    object(SimpleXMLElement)#41 (0) { 
    } 
    [37]=> 
    object(SimpleXMLElement)#42 (0) { 
    } 
    [38]=> 
    object(SimpleXMLElement)#43 (0) { 
    } 
    [39]=> 
    object(SimpleXMLElement)#44 (0) { 
    } 
    [40]=> 
    object(SimpleXMLElement)#45 (0) { 
    } 
    [41]=> 
    object(SimpleXMLElement)#46 (0) { 
    } 
    [42]=> 
    object(SimpleXMLElement)#47 (0) { 
    } 
    [43]=> 
    object(SimpleXMLElement)#48 (0) { 
    } 
    [44]=> 
    object(SimpleXMLElement)#49 (0) { 
    } 
    [45]=> 
    object(SimpleXMLElement)#50 (0) { 
    } 
    [46]=> 
    object(SimpleXMLElement)#51 (0) { 
    } 
    [47]=> 
    object(SimpleXMLElement)#52 (0) { 
    } 
    [48]=> 
    object(SimpleXMLElement)#53 (0) { 
    } 
    [49]=> 
    object(SimpleXMLElement)#54 (0) { 
    } 
+0

代碼轉儲應該告訴我們什麼?只需在根元素上調用asXml()即可獲得字符串 – Gordon

回答

3

只是你完整的XML保存爲一個字符串轉換爲會議無功...

$_SESSION['theXml'] = $xmlObject->asXML(); 

和retreive

$xmlObject = new SimpleXMLElement($_SESSION['theXml']); 

還是我不理解的問題..?

+0

是的,你是理解的,但asXML()doe鼻涕似乎正在工作無論什麼原因 – LeeTee

+0

是你100%確定$ this-> Message-> getAll('50 「);返回一個有效的simpleXMLobject? –

+0

沒有一個奇怪的,我剛剛意識到它的數組包含simpleXML對象。對不起,我應該先檢查一下! – LeeTee

0

保存它的序列化版本

$var->asXML(); 

並重建與當您從會話中獲取它的XML字符串的對象。

相關問題