fusioncharts 汉化3-5(第三章完毕)

本文介绍如何使用dataXML方法直接在HTML页面中嵌入XML数据以显示FusionCharts图表,避免创建额外的XML文件。文章详细展示了使用OBJECT/EMBED元素及JavaScript类设置dataXML属性的具体代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

位置:第三章创建你的第一个图表 >> dataXML方法

在前面的例子中,我们使用了dataURL方法提供数据给FusionCharts.在dataURL方法中,数据包含在一个外部物体XML文件中(如data.xml)或者一个相关URL地址(如ReturnXMLData.asp)

此外,还存在另一种方法来提供XML数据给FusionCharts - dataXML方法.

在此方法中,XML数据存在相同的页面中,FusionCharts也是嵌入的。当使用此方法时,你不需要创建而外的XML文件(像data.xml),他在HTML页面提供。

当使用dataXML方法,你必须非常小心引号冲突. 例如,如果你在XML文档中的属性使用单引号,在你的HTNL页面中请务必使用双引号封装整个XMl字符串,以作为OBJECT/EMBED元素的属性. 加引号的冲突往往不会引起错误,但是可能会一直在想为什么图表没有被渲染(你会得到一个空白的空间而不是图表)

让我们快速看看上面的例子.

 
在直接嵌入的HTML页面中使用dataXML方法
创建一个chart.html的副本并另存为ChartDataXML.html此外,修改代码如下:

 

ExpandedBlockStart.gif代码
<html>
<body bgcolor="#ffffff">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="900" height="300" id="Column3D" >
   
<param name="movie" value="../FusionCharts/Column3D.swf" />
   
<param name="FlashVars" value="&dataXML=<chart caption='Monthly Sales Summary' subcaption='For the year 2006' xAxisName='Month' yAxisName='Sales' numberPrefix='$'><set label='January' value='17400' /><set label='February' value='19800' /><set label='March' value='21800' /><set label='April' value='23800' /><set label='May' value='29600' /><set label='June' value='27600' /><set label='July' value='31800' /><set label='August' value='39700' /><set label='September' value='37800' /><set label='October' value='21900' /><set label='November' value='32900' /><set label='December' value='39800' /></chart>">
   
<param name="quality" value="high" />
   
<embed src="../FusionCharts/Column3D.swf" flashVars="&dataXML=<chart caption='Monthly Sales Summary' subcaption='For the year 2006' xAxisName='Month' yAxisName='Sales' numberPrefix='$'><set label='January' value='17400' /><set label='February' value='19800' /><set label='March' value='21800' /><set label='April' value='23800' /><set label='May' value='29600' /><set label='June' value='27600' /><set label='July' value='31800' /><set label='August' value='39700' /><set label='September' value='37800' /><set label='October' value='21900' /><set label='November' value='32900' /><set label='December' value='39800' /></chart>" quality="high" width="900" height="300" name="Column3D" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>

 

正如你在上面看到的,我们已经通过追加它作为FlashVars属性来提供完成的数据,格式如下:
<PARAM NAME="FlashVars" Value="&dataXML=completeXMLData">

在EMBED标记中, 你需要增加如下代码:
<EMBED ... FlashVars="&dataXML=completeXMLData">

这样你就可以从同一个页面中加载数据显示FusionCharts图表。

 
使用dataXML方法,同时使用JavaScript嵌入图表
如果您使用FusionCharts的JavaScript类嵌入图表,您可以使用dataXML为如下方式:
ExpandedBlockStart.gif代码
<html>
<head>
   
<script language="JavaScript" src="../FusionCharts/FusionCharts.js"></script>
</head> 
<body bgcolor="#ffffff">

   
<div id="chartdiv" align="center">The chart will appear within this DIV. This text will be replaced by the chart.</div>
   
<script type="text/javascript">
      
var myChart = new FusionCharts("../FusionCharts/Column3D.swf""myChartId""900""300""0""0");
      myChart.setDataXML(
"<chart caption='Monthly Sales Summary' subcaption='For the year 2006' xAxisName='Month' yAxisName='Sales' numberPrefix='$'><set label='January' value='17400' /><set label='February' value='19800' /><set label='March' value='21800' /><set label='April' value='23800' /><set label='May' value='29600' /><set label='June' value='27600' /><set label='July' value='31800' /><set label='August' value='39700' /><set label='September' value='37800' /><set label='October' value='21900' /><set label='November' value='32900' /><set label='December' value='39800' /></chart>");
      
      myChart.render(
"chartdiv");
   
</script>

</body>
</html>

上面你可以清楚地看到,不使用setDataURL方法提供了XML文件的路径,在这里我们使用setDataXML方法,来提供完整的XML数据本身

现在查看图表,你会得到和以前相同的输出.

 
使用这种方法,然而,当数据量非常大时有时会出问题,发生此问题是由于浏览器dataXML字符串长度限制所导致。当你使用dataXML方法进行大数据量操作时,浏览器会忽略指定长度后面的数据。这将导致FusionCharts的挂起(什么都不会显示在屏幕上)完整的数据并没有提供给它。因此,在使用大数据量时候,建议使用dataURL方法。(基本上,在多系列/组合图表使用时)
 

转载于:https://www.cnblogs.com/tippoint/archive/2010/07/01/1769269.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值