2012-07-06 57 views
0

我對此項目(星期一)有截止日期。它在本地主機上效果很好,但是當我將它上傳到我們的Web服務器時,我發現我們沒有啓用所有的DOM包,並且我不能使用函數dom_import_simplexml()。我的服務器管理員忽略了我的請求,可能是因爲很短的通知,我不可能很快地將XML系統重寫入數據庫系統。使用SimpleXML將WITH CDATA添加到XML元素並且不使用dom_import_simplexml()

這似乎是我遇到的唯一錯誤。請,如果您有任何其他想法,我很樂意聽到他們。我無所適從,因爲我找不到任何其他解決方案。我所要做的就是創建一些XML元素並用CDATA值填充它們,我不相信這不被SimpleXML支持!

請問,有沒有其他辦法可以想到?我很開放,因爲我不知道我能做什麼。

// Add a <pages /> element 
    $xml->addChild('pages'); 
    // Populate it with data 
    foreach($pages as $page){ 
    $new = $xml->pages->addChild('page'); 
    $new->addAttribute('pid', $page['pid']); 
    $new->addAttribute('title', $page['title']); 
    if(isset($page['ancestor'])) 
    $new->addAttribute('ancestor', $page['ancestor']); 
    $node = dom_import_simplexml($new); 
    $no = $node->ownerDocument; 
    $node->appendChild($no->createCDATASection($page['content'])); 
    } 

那最後三行顯然不起作用,我不知道我能用它們做些什麼!

非常感謝您提供的任何幫助。

+0

是你的'dom_import_simplexml()'問題,還是整個'DOMDocument'類不存在? (如果運行'$ doc = new DOMDocument;'會發生什麼) – nickb 2012-07-06 16:50:21

+0

由於DOMDocument類不存在,我得到一個致命錯誤。 – 2012-07-06 16:55:23

回答

0

他們不支持這是莫名其妙。你必須破解流。

$xml->node = '<![CDATA[character data]]>'; 
echo preg_replace('/\]\]&gt;</', ']]><', preg_replace('/&lt;!\[CDATA/','<![CDATA', $xml->asXML())); 

這是有問題的,也許這些字符串可能顯示在您的cdata某處。你必須承擔風險。

對不起,我無法幫助您完成截止日期,但至少有人對使用DOM感到惱火或無法使用它會有各種解決方案。