2013-02-03 131 views
1

我不知道如何添加xml子項中的cdata?我得到這個代碼:添加到子項XML cdata

$errors = array(); 
if(isset($_POST['newtopic'])){ 
    $topicname = preg_replace('/[^A-Za-z]/', '', $_POST['topicname']); 
    $textarea = $_POST['textarea']; 
    $desc = $_POST['desc']; 
    $startedby = $_POST['startedby']; 
    $tn = $_POST['topicname']; 

    if($topicname == ''){ 
     $errors[] = 'You`re topic title is missing!'; 
    } 
    if($topicname == ''){ 
    $errors[] = 'You`re textarea is missing!'; 
} 


    if(count($errors) == 0){ 
     $xml = new SimpleXMLElement('<topic></topic>'); 
     $xml->addChild('textarea', $textarea); 
     $xml->addChild('desc', $desc); 
     $xml->addChild('startedby', $startedby); 
     $xml->addChild('date', $date); 
     $xml->addChild('topicname', $tn); 
     $xml->asXML('topics/sitenews/' . $topicname . '.xml'); 
     header('Location: sitenews.php'); 
     die; 
    } 
} 

我想添加CDATA至$ textarea的一部分而已,我嘗試已經使用'<![CDATA['. $textarea .']]>',但它不工作。

預先感謝您。

+0

好消息是:你並不需要添加CDATA,你可以只添加文本以及。 SimpleXML將正確地爲您編碼。否則,請參閱重複問題。 – hakre

回答

1

看到這裏 How to write CDATA using SimpleXmlElement?

從鏈接的例子複製:

class SimpleXMLExtended extends SimpleXMLElement{ 
    public function addCData($cdata_text){ 
    $node= dom_import_simplexml($this); 
    $no = $node->ownerDocument; 
    $node->appendChild($no->createCDATASection($cdata_text)); 
    } 
} 

$doc = new SimpleXMLExtended($xml); 
$element = $doc->addChild('response'); 
$node_note = $element->addChild('note'); 
$node_note->addCData('my cdata guff'); 
var_dump($doc->asXML()); 
+0

你能把它連接到我的代碼嗎?我已經看到了這個網頁..使用新的子不是新的簡單的XML元素 –

+0

我我已經試過這$ CDATA = $ XML的>的addChild(「textarea的」,$ textarea的); $ cdata-> addCData($ textarea的); –

+1

請不要重複這樣的答案。如果答案已經存在,請在評論中指出或在達到3k聲望後作爲複製提供 – Gordon