我正在尝试从数据库中获取数据并使用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文件中。
答案 0 :(得分:0)
尝试此操作以添加$ results_array
中的数据$cms_block->appendChild($doc->createElement($fieldname, $fieldvalue));
<强>更新强> 移动$ blocks-&gt; appendChild($ cms_block);到你的while循环结束。