Highcharts每1加载一次XML数据

时间:2013-06-04 20:32:34

标签: jquery xml highcharts

但现在我还有其他问题。我不知道如何从每5秒钟从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);
   });
});

感谢您的想法和帮助

1 个答案:

答案 0 :(得分:0)

您需要在setInterval()中调用ajax,然后获取数据。我假设你想从secong用户部分获取数据:

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

因此,您可以对XML使用相同的解析器,但使用修改后的用户行:

$xml.find('user[name="Name2"]')

AJAX:

 chart:{
    events:{
       load:function(){
          setInterval(function(){
              $.ajax()...
          },1000);
       }
    }
}