所以,我从查询中得到以下数组:
(findpercentage是我使用的cfquery的名称)
<cfset pieData = ArrayNew(1)>
<cfset dataItem =[ 'Open', '#findpercentage.OPENS#' ]>
<cfset ArrayAppend(pieData, dataItem)>
<cfset dataItem =[ 'Bounce', '#findpercentage.BOUNCE#' ]>
<cfset ArrayAppend(pieData, dataItem)>
<cfset dataItem =[ 'Deferred', '#findpercentage.DEFERRED_EVENT#' ]>
<cfset ArrayAppend(pieData, dataItem)>
<cfset dataItem =[ 'Dropped', '#findpercentage.DROPPED#' ]>
<cfset ArrayAppend(pieData, dataItem)>
<cfset dataItem =[ 'Delivered', '#findpercentage.Delivered#' ]>
<cfset ArrayAppend(pieData, dataItem)>
<cfset dataItem =[ 'Processed', '#findpercentage.Processed#' ]>
<cfset ArrayAppend(pieData, dataItem)>
<cfset dataItem =[ 'Spamreport', '#findpercentage.Spamreport#' ]>
<cfset ArrayAppend(pieData, dataItem)>
数组看起来像following:
数组大小可以继续增长或缩小(例如,有时可能有2个数组,有时可能有20个数组)。
有没有办法,从上面的数组中,我可以生成如下的XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item>
<value>31.4164</value>
<label>Open</label>
<colour>FFFF10AA</colour>
</item>
<item>
<value>3.2240</value>
<label>Bounce</label>
<colour>FFAA0AAA</colour>
</item>
<item>
<value>0.2430</value>
<label>Deferred</label>
<colour>FF5505AA</colour>
</item>
<item>
<value>1.2799</value>
<label>Dropped</label>
<colour>FF0000AA</colour>
</item>
<item>
<value>31.5584</value>
<label>Delivered</label>
<colour>FF0000AA</colour>
</item>
<item>
<value>32.2290</value>
<label>Processed</label>
<colour>FF0000AA</colour>
</item>
<item>
<value>0.0217</value>
<label>Spamreport</label>
<colour>FF0000AA</colour>
</item>
</root>
我还需要找出一种方法来生成我在color
标记中此刻硬编码的唯一颜色。
我将其转换为XML的原因是因为工具here只能理解XML或JSON。
请告诉我。
我的cfquery上的SerializeJSON结果名为findpercentage
:
{
"COLUMNS": [
"TOTAL_EVENTS",
"OPENS",
"BOUNCE",
"DEFERRED_EVENT",
"DROPPED",
"DELIVERED",
"PROCESSED",
"SPAMREPORT"
],
"DATA": [
[
267526,
31.4164,
3.224,
0.243,
1.2799,
31.5584,
32.229,
0.0217
]
]
}
答案 0 :(得分:1)
我最近不得不从查询结果中创建一个xml文件。基本上,我是这样做的:首先,使用或多或少结构合理的格式创建一个带有查询数据的变量。
<cfsavecontent variable="data">
<BurnRecords>
<cfoutput query="AllData">
more code
</cfoutput>
</BurnRecords>
接下来,使用正确的xml格式创建另一个变量
<cfxml casesensitive="yes" variable="xmldata">
<cfoutput>#Replace(data, chr(10) & chr(13) & chr(10) & chr(13), chr(10), "all")#</cfoutput>
</cfxml>
最后,将xml数据写入文件。
<cffile action="write" nameconflict="overwrite" file="#FileName#" output="#xmldata#">
编辑从此处开始
回想起来,我似乎过度工作了。这可能已经足够了。
<cfxml casesensitive="yes" variable="xmldata">
<BurnRecords>
<cfoutput query="AllData">
more code
</cfoutput>
</BurnRecords>