1

私はここが初めてで、JavaScript の初心者なので、ご容赦ください。

jQuery xml オブジェクトのデータに基づいてハイチャートをプロットしようとしています。実際のデータはSOAPリクエストから来ていますが、フィドルの目的で、今のところテキスト変数に貼り付けただけです。

私のjsfiddleの例

「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 など)) のプロットを取得するように、これをどのように記述するかがわかりません。 .

これが理にかなっていることを願っており、長い投稿をお詫びします。誰かが私のためにコードを書いてくれるとは思っていませんが、構文の手がかりや提案などは大歓迎です。

4

1 に答える 1