douyi6168 2015-09-15 12:48
浏览 57
已采纳

使用DOM编写XML文件

I am trying to get data from database and write it to xml file using DOM.

$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);       
}

The above code works and mostly does what I need it to do but it fails within foreach loop and the elements and value that I am trying to add within foreach does not work.

Example of $result_array = mysqli_fetch_assoc($result)

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

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

It would really help me if someone can tell me what I am doing wrong within foreach loop which is not adding the data that I am getting from database to the xml file please.

  • 写回答

1条回答 默认 最新

  • duanlang0025 2015-09-15 12:54
    关注

    Try this to add data from your $results_array

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

    UPDATE Move $blocks->appendChild($cms_block); to the end of your while loop .

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd