我正在尝试以<xsl:for-each select="entry">
<fo:table-row>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="TimeStamp" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="PlateVolts" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="PlateCurrent" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="ForwardPower" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="ReflectivePower" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="IntakeAirTemp" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="ExhaustAirTemp" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="WestRoomTemp" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="TowerLightCurrent" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="EastRoomTemp" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="NotMonitrd1" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="RackVoltage" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="BkupFwd" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="BkupRef" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="SpsGen" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid .5px black"
text-align="center" >
<fo:block>
<xsl:value-of select="AudioLevel" />
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
格式向.txt
格式发送JSON
中的一对密码以及它们出现在其中的频率。然后我会用它来制作图表。图表要求hashlist
数据采用以下格式:
JSON
我正在使用此代码:
[["patches90",35],
["Champions17",32],
["scotty1977",29],
["Kiddos08",25],
["holidays2016",21],
["scott26me",17],
["People1123@",13],
["Software0)",9],
["Artistic104",5],
["bank123",2]]
我正在创建的图表位于模态中。 f = open('/var/www/html/hashtopussy/top10.txt', 'w')
f.print "["
@words.sort{|a,b| (a[1]<=>b[1]) * -1}[0, @cap_at].each { |elem|
percentage = (elem[1].to_f / @total_words_processed) * 100
ret_str << "#{elem[0]} = #{elem[1].to_s} (#{percentage.round(2).to_s}%)\n"
#my code goes here
f.print "[#{elem[0].to_json},#{elem[1].to_json}]"
if (elem != elem.last)
f.print ",\n"
else f.print "]"
end
#and ends here
}
#f.print "]\n"
f.close
部分是上述ruby代码写入文件的位置。我的代码产生:
var dataPoints
我在[["patches90",35],
["Champions17",32],
["scotty1977",29],
["Kiddos08",25],
["holidays2016",21],
["scott26me",17],
["People1123@",13],
["Software0)",9],
["Artistic104",5],
["bank123",2],
中有一个额外的逗号,并且在结尾处有一个缺少的右括号["bank123",2],
。我尝试了多个循环和条件而没有运气。
答案 0 :(得分:0)
您想要序列化数组数组。您将获得一个JSON示例,因此问题是,您需要生成哪种结构才能传递给JSON序列化程序以获得所需的结果:
require 'json'
foo = JSON[
'[["patches90",35],
["Champions17",32],
["scotty1977",29],
["Kiddos08",25],
["holidays2016",21],
["scott26me",17],
["People1123@",13],
["Software0)",9],
["Artistic104",5],
["bank123",2]]'
]
此时foo
是等效对象:
foo
# => [["patches90", 35],
# ["Champions17", 32],
# ["scotty1977", 29],
# ["Kiddos08", 25],
# ["holidays2016", 21],
# ["scott26me", 17],
# ["People1123@", 13],
# ["Software0)", 9],
# ["Artistic104", 5],
# ["bank123", 2]]
(在这种情况下,解析的对象看起来像原始的JSON字符串,但并不总是如此。)
您可以通过从Ruby对象开始并尝试序列化来测试它:
require 'json'
foo = [
['a', 1],
['b', 2]
]
puts JSON[foo]
# >> [["a",1],["b",2]]
因此,构建一个两元素数组的数组并将其传递给JSON并保存该输出。我通常使用类似的东西:
File.write('foo.json', JSON[foo])
这种策略可以很容易地将任何JSON API响应解析为Ruby对象,可能会对其进行修改并对其进行重新序列化:
foo = JSON['{"a":1,"b":2}'] # => {"a"=>1, "b"=>2}
foo['c'] = 4
puts JSON[foo]
# >> {"a":1,"b":2,"c":4}
简而言之,请使用现有的经过良好测试的车轮。