Highcharts通过属性从XML读取数据

时间:2013-05-31 07:53:59

标签: xml highcharts

从XML读取数据时遇到小问题。

XML文件

<user name="Name1" status="online" ip="0.0.0.0">
     <stats>
       <cwok>201</cwok>
       <cwnok>0</cwnok>
       <cwignore>0</cwignore>
     </stats>
</user>

* 用于从XML *

中读取数据的Highcharts脚本
// Load the data from the XML file
   $.get('oscamapi.html?part=userstats', function(xml) {

// Split the lines
   var $xml = $(xml);

// push series
   $xml.find('user').each(function(i, series) {
   var seriesOptions = {
   name: $(series).find('name').text(),
   data: []
    };

// push data points
   $(series).find('stats cwok').each(function(i, point) {
   seriesOptions.data.push(
   parseInt($(point).text())
   );
   });

// add it to the options
   options.series.push(seriesOptions);
    });
   var chart = new Highcharts.Chart(options);
   });
   });

我需要从XML中获取元素 user 中的值属性 name

我认为问题出在这里:

 var seriesOptions = {
    name: $(series).find('name').text(),
    data: []
 };
是的,请你帮帮我。

非常感谢

3 个答案:

答案 0 :(得分:0)

我不确定你是否想拥有直线或其他图表,但我准备了一个简单的例子和​​散点图系列,还有一点,哪个值得到grom“cwok”。如果您想获得更多积分,则需要更多cwok项目。

$(document).ready(function() {
   var options = {
  chart: {
      renderTo: 'container',
      type:'scatter'
  },
  series: []
  };

  $.get('data.xml', function(xml) {
// Split the lines
  var $xml = $(xml);
  console.log(xml);

  // push categories
  $xml.find('stats cwok').each(function(i, data) {

    var seriesOptions = {

            data: []
    };

    seriesOptions.data.push(

      parseInt($(data).text())

    );

    options.series.push(seriesOptions);
  });

  var chart = new Highcharts.Chart(options);

  });
});

答案 1 :(得分:0)

我想出了如何从属性“name”获取值。谢谢你的回答: - )

var seriesOptions = {
    name: $(series).attr('name'),
    data: []
};

答案 2 :(得分:0)

但现在我还有其他问题。我不知道如何每1秒从XML获取cwok的价值

XML文件

<user name="Name1" status="online" ip="0.0.0.0">
 <stats>
   <cwok>100</cwok>
   <cwnok>0</cwnok>
   <cwignore>0</cwignore>
 </stats>
</user>
<user name="Name2" status="online" ip="0.0.0.0">
 <stats>
   <cwok>200</cwok>
   <cwnok>0</cwnok>
   <cwignore>0</cwignore>
 </stats>
</user>

用于从XML读取数据的Highcharts脚本

 // Load the data from the XML file
 $.get('oscamapi.html?part=userstats', function(xml) {

 // Split the lines
 var $xml = $(xml);

 // push series
 $xml.find('user').each(function(i, series) {
 var seriesOptions = {
 name: $(series).attr('name'),
 data: []
 };

// push data points
$(series).find('stats cwok').each(function(i, point) {
seriesOptions.data.push(
parseInt($(point).text())
);
});

// add it to the options
options.series.push(seriesOptions);
});
var chart = new Highcharts.Chart(options);
});
});

感谢您的想法和帮助