使用DOM编写XML文件

时间:2015-09-15 12:48:28

标签: php xml dom

我正在尝试从数据库中获取数据并使用DOM将其写入xml文件。

$doc = new DomDocument('1.0', 'UTF-8');
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;

$root = $doc->createElement('root');
$doc->appendChild($root);

$blocks = $doc->createElement('blocks');
$root->appendChild($blocks);

while($result_array = mysqli_fetch_assoc($result)) 
{
    $cms_block = $doc->createElement('cms_block');

    foreach($result_array as $fieldname => $fieldvalue)
    {
        /*This is part that is not working*/

        $key = $doc->createElement($fieldname);
        $cms_block->appendChild($key);
        $value = $doc->createTextNode($fieldvalue);
        $key->appendChild($value);          
    }

    $stores = $doc->createElement('stores');
    $cms_block->appendChild($stores);

    $item = $doc->createElement('item');
    $stores->appendChild($item);

    $itemvalue = $doc->createTextNode('0');
    $item->appendChild($itemvalue); 

    $blocks->appendChild($cms_block);       
}

上面的代码可以工作,并且主要完成我需要它做的事情,但它在foreach循环中失败,我试图在foreach中添加的元素和值不起作用。

$ result_array = mysqli_fetch_assoc($ result)

的示例
Array ( [title] => Footer Links [identifier] => footer_links [is_active] => 1 ) 

数组([title] =>页脚链接[标识符] => footer_links [is_active] => 1)

如果有人能告诉我在foreach循环中我做错了什么,这对我来说真的有帮助,而不是将我从数据库中获取的数据添加到xml文件中。

1 个答案:

答案 0 :(得分:0)

尝试此操作以添加$ results_array

中的数据
$cms_block->appendChild($doc->createElement($fieldname, $fieldvalue));

<强>更新 移动$ blocks-&gt; appendChild($ cms_block);到你的while循环结束。