我很难将一些数组数据输出到XML文件。这是工作流程:
如果我手动编写内联XML,我就能完成这个工作流程(例如:$ xml。=''。$ data [' field']。' &#39 ;; 但这并不是最佳选择,而且我已经被要求使用渲染数组(并将模板文件保留在模块中)。
所以,#1,2,5我可以弄明白(因为保存文件是一样的)。它的#3是真正的错误。
我的代码:
Array ( [#template] => module_name_xml_entry, [#video] => stdClass Object ( [title], [thumbnail].... ), [#theme] => module_name_xml_entry, )...
现在这里有一些有趣的东西:如果我dd()数组(其中有990个),我会看到#34;#children"和" #printed"已经自动添加,因此我假设我正在使用真实的渲染数组。
然后我尝试将每个可以想到的将这个数组转换为XML的方法。我尝试过$ xmlOut。= render($ theStuffAbove),drupal_render($ youguessedit),please_lord_make_it_go($ facepalm)......无济于事。
我得到的是空白(没有任何内容在$ xmlOut中)或数组本身。
同样,我可以循环我的数据库结果,手动将结果转换为XML(字符串构建混乱)并保存所有这些就好了。使用渲染数组令我感到困惑。阅读&#34; TDGD7&#34;没有帮助(在渲染阵列上只有1047个短页面),而我只是不理解渲染数组是如何渲染的。&#34; < / p>
更新 我忘了提及我做有一个module_name_theme(...)函数设置:
$items = array();
$items['module_name_admin_settings_form'] = array(...);
$items['module_name_xml_wrapper'] = array(
'variables' => array('videos' => NULL)),
'template' => 'templates/module_name_xml_wrapper',
);
$items['module_name_xml_entity'] = array(
'variables' => array('video' => array()),
'template' => 'templates/module_name_xml_entity',
);
return $items;
答案 0 :(得分:0)
<强>固定强>
好的,所以这很奇怪(发誓我以前做过这个)。
所以长短:它看起来像清理theme()函数,我的hook_theme()最终使输出工作。