私はここが初めてで、JavaScript の初心者なので、ご容赦ください。
jQuery xml オブジェクトのデータに基づいてハイチャートをプロットしようとしています。実際のデータはSOAPリクエストから来ていますが、フィドルの目的で、今のところテキスト変数に貼り付けただけです。
「Create HTML Table and Plot」ボタンをクリックし、下にスクロールしてチャートを表示します。
私のxmlデータの例は次のとおりです。
<rowset>
<Row>
<Column0>0</Column0>
<Column1>101</Column1>
<Column2>US 1 LE 1 BU 1</Column2>
<Column3>110</Column3>
<Column4>CEO</Column4>
<Column5>Ledger USA PL</Column5>
<Column6>01-12</Column6>
<Column7>2012</Column7>
<Column8>20120101</Column8>
<Column10>240481</Column10>
</Row>
<Row>
<Column0>0</Column0>
<Column1>101</Column1>
<Column2>US 1 LE 1 BU 1</Column2>
<Column3>121</Column3>
<Column4>US Operations</Column4>
<Column5>Ledger USA PL</Column5>
<Column6>01-12</Column6>
<Column7>2012</Column7>
<Column8>20120101</Column8>
<Column9>0</Column9>
<Column10>2026166</Column10>
</Row>
グラフの x 軸に会計期間 (Column6) を 01-12、02-12 などとして表示する x 軸カテゴリを作成できます。
var cats = [];
$($xml).find("Row").each(function () {
var column = $(this).find("Column6").text();
if ($.inArray(column, cats)===-1)
cats.push(column);
options.xAxis.categories = cats;
});
ここまでは順調ですね。シリーズをどう作ろうか悩んでいます。これは私が現在持っているものです(Column4はシリーズラベルで、Column10は各シリーズと各期間にプロットされる量です):
$($xml).find("Row").each(function(i, series) {
var seriesOptions = {
name: $(series).find("Column4").text(),
data: []
};
$(series).find('Column10').each(function(i, point) {
seriesOptions.data.push(
parseInt($(point).text())
);
});
// add it to the options
options.series.push(seriesOptions);
});
xml オブジェクトのすべての行を検索しているだけなので、これは明らかに間違っています。その結果、私のチャートには 30 を超えるシリーズがすべて期間 01-12 に表示されて表示されます。各期間の列 4 (「CEO」と「US Operations」など) の個別の値 (例: Column6 (01-12、02-12 など)) のプロットを取得するように、これをどのように記述するかがわかりません。 .
これが理にかなっていることを願っており、長い投稿をお詫びします。誰かが私のためにコードを書いてくれるとは思っていませんが、構文の手がかりや提案などは大歓迎です。