FusionCharts的确功能是够强大的。收集的功能估计更强大。在初次使用时,对着手册,一步一步操作,就是生成图表工具不成功。一直报“Invalid xml data”错误。
后面排查,发现可能有以下几个问题。
1、xml文件格式问题。特别是配对符号。确保访问时,是OK的。
2、XML文件的BOM问题。如果xml文件里有中文,一定要记得增加BOM。在Dreamweaver里增加,是打开xml文件->‘修改’菜单->‘页面属性’->‘标题/编码’->‘包括 Unicode 签名(BOM)’前面的复选框选中。然后点确定。这样中文的xml报这个错误即可解决。
顺便告诉大家一个小技巧。就是我们在写程序包含xml文件时,都是
myChart.setDataURL("/data.xml");
但是我们的数据基本上都是动态生成的。其实我们可以包含一个php程序。然后通过php程序输出xml。这样就可以很好的达到目的了。
如:
myChart.setDataURL("/charts_ajax_show.php");
然后charts_ajax_show.php程序如下:
注意我php程序里有一句代码:
text/xml意思就是告诉浏览器要输出xml。如果不加这个。肯定就是不行的哦。
后面排查,发现可能有以下几个问题。
1、xml文件格式问题。特别是配对符号。确保访问时,是OK的。
2、XML文件的BOM问题。如果xml文件里有中文,一定要记得增加BOM。在Dreamweaver里增加,是打开xml文件->‘修改’菜单->‘页面属性’->‘标题/编码’->‘包括 Unicode 签名(BOM)’前面的复选框选中。然后点确定。这样中文的xml报这个错误即可解决。
顺便告诉大家一个小技巧。就是我们在写程序包含xml文件时,都是
myChart.setDataURL("/data.xml");
但是我们的数据基本上都是动态生成的。其实我们可以包含一个php程序。然后通过php程序输出xml。这样就可以很好的达到目的了。
如:
myChart.setDataURL("/charts_ajax_show.php");
然后charts_ajax_show.php程序如下:
PHP Code
复制内容到剪贴板
- <?php
- header("Content-type:text/xml;charset=utf-8");
- echo "<?xml version='1.0' encoding='utf-8'?>";
- echo "<graph caption='每月销售额柱形图' xAxisName='月份' yAxisName='unit' showNames='1' decimalPrecision='0' formatNumberScale='0'>
- <set name='一月' value='462' color='AFD8F8' hoverText='一月销售额' />
- <set name='二月' value='857' color='F6BD0F' showName='0' />
- <set name='三月' value='671' color='8BBA00' />
- <set name='四月' value='494' color='FF8E46' />
- <set name='五月' value='761' color='008E8E' />
- <set name='六月' value='960' color='D64646' />
- <set name='七月' value='629' color='8E468E' />
- <set name='八月' value='622' color='588526' />
- <set name='九月' value='376' color='B3AA00' />
- <set name='十月' value='494' color='008ED6' />
- <set name='十一月' value='761' color='9D080D' />
- <set name='十二月' value='960' color='A186BE' />
- </graph>";
注意我php程序里有一句代码:
PHP Code
复制内容到剪贴板
- header("Content-type:text/xml;charset=utf-8");
text/xml意思就是告诉浏览器要输出xml。如果不加这个。肯定就是不行的哦。