人,
这是http://www.jeasyui.com/forum/index.php?topic=1144发布的问题的继续。
我正在尝试加载XML数据(虽然默认情况下easyui使用json)。论坛中的示例显示如何按原样加载xml,但不能链接xml文件或URL。
基本上,问题是
如何将XML文件加载到easyUI数据网格
目前“数据”指定为
data: '<root><people><name>name1</name><address>address1</address></people><people><name>name2</name><address>address2</address></people></root>',
但是可以将数据作为文件或URL
data: '/some/url/input.xml'
以下完整示例。
<table class="easyui-datagrid" title="Load XML Data" style="width:300px;height:200px"
data-options="
**data: '/some/url/input.xml',**
loadFilter: function(xml){
var rows = [];
$(xml).find('people').each(function(){
var p = $(this);
var row = {
name: p.find('name').text(),
address: p.find('address').text()
};
rows.push(row);
});
return {total:rows.length,rows:rows};
}
">
<thead>
<tr>
<th data-options="field:'name'">Name</th>
<th data-options="field:'address'">Address</th>
</tr>
</thead>
</table>
提前致谢。
答案 0 :(得分:1)
我能够解决这个问题。它需要一些工作和一些从一种格式到另一种格式的来回移动数据。我从CRUD datagrid教程版本开始,所以我的答案可能会有所不同。我从CRUD示例开始,从mySQL解决方案转换为使用XML http://www.jeasyui.com/tutorial/app/crud2.php
$(function(){
$('#dg').edatagrid({
url: 'get_data.php' /* pulls in the data from a xml file */
});
});
我的示例实际上有read(url),create(saveURL),update(updateURL)和delete(destroyUrl)但是对于这个答案,我只是把url读取数据。
对于我的get_data.php,我将XML文件转换为JSON。我还删除了该XML文件中的根。
if(!$xml = simplexml_load_file("mydata.xml", null, LIBXML_NOCDATA)) {
echo "unable to load file";
}
{
$xmlarray = array(); // create a new array
foreach ($xml as $element) { // loop through the xml file elements
array_push($xmlarray, $element); // push the elements on the xml array
}
}
echo json_encode($xmlarray); // encode that json without the root xml element
我仍然坚持使用simplexml,但是当你进行删除和更新时,有更简单的方法可以做到这一点。您可以使用DOM或其他方式。