【问题标题】:adding to child XML cdata [duplicate]添加到子 XML cdata [重复]
【发布时间】:2013-02-03 19:15:23
【问题描述】:

我想知道如何在 xml child 中添加 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 部分,我已经尝试使用 '&lt;![CDATA['. $textarea .']]&gt;' 但它不起作用。

提前谢谢你。

【问题讨论】:

  • 好消息是:您不需要添加 CDATA,您也可以只添加文本。 SimpleXML 将为您正确编码。否则,请参阅重复的问题。

标签: php html xml


【解决方案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()); 

【讨论】:

  • 你能把它连接到我的代码吗?我已经看过这个页面..我使用新的孩子不是新的简单 xml 元素
  • 我试过这个 $cdata = $xml->addChild('textarea', $textarea); $cdata->addCData($textarea);
  • 请不要重复这样的答案。如果答案已经存在,请在 cmets 中指出,或者在您达到 3k 声望后将其作为骗子提供
猜你喜欢
  • 2013-03-10
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
相关资源
最近更新 更多