【问题标题】:Writing XML file Using DOM使用 DOM 编写 XML 文件
【发布时间】:2015-12-11 17:42:47
【问题描述】:

我正在尝试从数据库中获取数据并使用 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] => 页脚链接 [identifier] => footer_links [is_active] => 1)

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

【问题讨论】:

    标签: php xml dom


    【解决方案1】:

    试试这个从你的 $results_array 添加数据

    $cms_block->appendChild($doc->createElement($fieldname, $fieldvalue));
    

    更新 移动 $blocks->appendChild($cms_block);到您的 while 循环结束。

    【讨论】:

    • 谢谢你的回复我试过了,它打印的只是'footer_links 1 0'对于我在我的问题中给出的例子。
    • 第一次尝试时我确实将 $key 更改为 fieldname 并将 $value 更改为 $filedvalue。
    • $blocks->appendChild($cms_block); 移动到 while 循环的末尾,看看是否可以解决问题。另外,你能提供你的代码生成的xml文件吗?
    • 移动 $blocks->appendChild($cms_block);外部while循环工作。谢谢。但是其中一个领域需要添加 CDATA 我该如何实现呢
    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2012-04-16
    • 2011-09-17
    相关资源
    最近更新 更多