0

我正在尝试将 cakephp 请求对象中的所有表单数据转换为 xml,然后将其转换为字符串,以便我可以将其放置在 mysql 表的(blob)列中。

我正在尝试使用 CakePHP 2.xx 中的内置 xml 构建器执行此操作,如下所示,但出现错误。

if ($this->request->is('post')) {
            $this->Survey->create();                 
                        $xml = Xml::build($this->request->data);

}

表格如下图

<?php echo $this->Form->create('Survey'); ?>
    <fieldset>
        <legend><?php echo __('Add Survey'); ?></legend>
    <?php

                echo $this->Form->input('Question 1');
                echo $this->Form->input('Question 2');
                echo $this->Form->input('Question 3');

    ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit')); ?>

我得到的错误似乎是由于堆栈跟踪中的 DOCDocument->createElement(string,string) 造成的。我还使用了其他方法,包括像这样手动构建它:

                $doc = new DOMDocument('1.0');
                $doc->formatOutput = true;
                $doc->loadHTML($this->request->data); 

                $data = $this->request->input('Xml::build',
                        array('return' => 'domdocument'));

                while(list($key,$value) = each($this->request->data)){
                    $data = $data . $key . $value;
                }

                if(isset($this->request->data)){
                    $doc = new DOMDocument('1.0');
                    $doc->formatOutput = true;
                    $root = $doc->appendChild($doc->createElement('survey'));


                    $post = $this->request->data['Survey'];
                    unset($post['submit']);

                    foreach($post as $key => $value){
                        $node = $doc->createElement($key,$value);
                        $root->appendChild($node);
                    }

                    $test1 = $doc->saveXML();

任何帮助,将不胜感激。谢谢你。

4

1 回答 1

0

请参阅将数组转换为 XML 字符串部分。

于 2013-07-16T13:57:25.677 回答