用Java从XML文件中获取业务图表

2016-02-19 19:02 19 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是用Java从XML文件中获取业务图表,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

  Java要害字导航 网络 J2ME 手机游戏 JavaCard Struts 游戏 分析器 JAAS EJB JavaMail 设计模式 J2EE

  数据的图解表示法是一个热门的话题。 我们翻阅杂志,可以看到很多公司提供复杂的图形程序包,可以让你处理你的数据并使之可视化。

  这些程序包有一个公共的问题:它们要求在它们可以把你的数据形成图表之前,你必须把你的XML数据格式化成一种它们能够读懂的特定的格式。 这样的话,XML有力的灵活性就被埋没了,因为你必须改换数据格式--通常使用XSLT。 这并不总是想看上去那么微不足道的,因为有时开发者必须从第三方的数据源获得XML文件,然后在把这些XML文件发送到客户之前给它们添加图表。 举例来说吧,一个金融服务公司可能必须从一个租用的数据库中取得一家公司的基本资料,然后在把它转化成XSL格式之前需要分析这些数据。

  本文将介绍如何一步一步的使用Java开发一个业务图表服务器。 服务器调用你的数据源,然后按照你设置来生成数据序列和种类的XPath变量分析数据。 它然后把数据载入制图表引擎,一个名为JFreeChart的出色的源码开放程序包。

  最后返回到服务器的调用者的图表是一个JPEG文件,这样它就可以被发送到一个基于浏览器的产品而不需要下载额外的软件了。

  在这边文章中我开发的服务器(起名为chartserver),是一个初级版本,调用固定的XML文件作为数据源。 在本文的结尾,我将讨论如何把这个服务器扩展成可以调用自己设置的参数需要的数据服务器。 另外,这个例程使用开放源码的JFreechart引擎在服务器端构造它的图表。 而且想要把它修改成使用任何其它的制图表引擎的话,也是一件很简单的事情。
  图表的元素

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  大部分的图表可以分解成一系列公共的对象,其中最主要的两个是数据系列和数据种类。 数据系列正像它名称所蕴含的意义---一系列计划放在一起组成一种关系的数据。
  举例来说,在一个线状图表中数据系列是线内的点;在一个圆饼图中,数据系列是组成饼图的每个表示数量的"块"。 另一方面数据种类是描述数据系列的点。 举例来说,在一个线状图中,假如数据系列是股票收盘价格,那么通常的匹配这些数据的日期类别将是股票在这个价位收盘的日期。

  本文中的例子是基于一个包含一个虚拟的球队的赛季赛况统计数据的XML文件。在下面的例子中,球员的得分情况被制成了一张圆饼图。 得分组成数据系列,球员姓名组成类别系列。

  某些图表需要多种数据系列,比如你想比较两组数据的图表,最现实的例子就是预算收入和。 实际收入,或者进行的比赛项目和取得的成绩, 它然后使用这些值作为参数来构造图表对象。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  这些值连同其它的用于每个图表的配置信息一起保存在一个charts.xml文件中。

  <chart id="points">
  <url>http://localhost/players.xml</url>
  <config>http://localhost/pmconfig.xml</config>
  <series>//Players/Player[Points>0 and Minutes>1000]/Points</series>
  <categories>//Players/Player[Points>0 and Minutes>1000]/Name</categories>
  <XSize>600</XSize>
  <YSize>400</YSize>
  </chart>
  这段XML文本告诉服务器用于生成图表的数据源储存在什么位置,生成图表的配置信息储存在什么位置以及用于数据系列和数据种类的XPath是什么。 我们可以看出,XPath值可以相当的复杂,在这个例子中,我们用一些条件过滤这个XML文件,找到那些球员有得分,那些球员上场时间超过1000分钟。 他们的分数组成数据系列,他们的姓名组成类别系列。

  现在,用于单独图表的配置文件包含设定图表类型,图表标题,种类标题,值标题和每个系列的标题。 这样就能够轻而易举的使用数据系列被定义的颜色来表示这个系列,而不是使用某种代码来表示了。

  <chart>
  <Type>1</Type>
  <Title>Points By Player</Title>
  <CatTitle>Player Name</CatTitle>
  <ValTitle>Points</ValTitle>
  <SeriesTitles>Points Scored</SeriesTitles>
  </chart>
  Servlet是如何工作的

  代码段1中的doGet函数取得参数值(包括图表、宽度和高度),载入配置XML文件,分析这个文件取得正确的数据文件,然后设置所有的DoChart(见代码段2)函数所需要的变量,而DoChart函数是执行实际的制表功能的。

  配置图表对象
   
  配置图表对象是一个两步操作。 第一步是设置图表的外观属性。 第二步是将这些数据装载入图表。
  这些都是由DoChart函数来完成的。 它分析配置文件并取得一个图表类型,然后以此构造出11个图表中的一个。

  在下面的例子中,球员的得分情况被制成了一张圆饼图。 得分组成数据系列,球员姓名组成类别系列。
  

来源:http://www.tulaoshi.com/n/20160219/1619862.html

延伸阅读
概述: Jdom是用Java语言读、写、操作XML的新API函数。Jason Hunter 和 Brett McLaughlin公开发布了它的测试版本。在直觉、简单和高效的前提下,这些API函数被最大限度的优化。 !-- frame contents -- !-- /frame contents -- 在接下来的篇幅里,Hunter 和 McLaughlin介绍怎么用Jdom去读写一个已经存在的XML文档。 ...
import java.io.*; import java.util.*; /**  * pTitle: 文件操作/p  * pDescription: 演示文件的删除和获取文件的信息/p  * pCopyright: Copyright (c) 2003/p  * pFilename: /p  * @version 1.0  */ public class fileOperation{ /**  *br方法说明:删除文件  *br输入参数:String fileName 要...
标签: ASP
  要求传入工号 返回员工姓名 '全局数据 考虑这样只要load一次 set Doc = CreateObject("Microsoft.XMLDOM") Doc.async = false Doc.load(Server.MapPath("user_cnname.xml")) function cnname_var (varusername) dim node,i,nodecount,root set nodeLis= Doc.getElementsByTagName("user") nodeCount = nodeLis.length For i=0 to node...
标签: Web开发
篇文章描述如何获得IE浏览器当前网页的HTML文档。 Create a console application in any version of Visual Studio using .Net version 1|2|3|3.5. Add two Com object references which will allow us to manipulate IE. 用 Visual Studio 的任意版本建立一个控制台程序。 添加2个COM对象引用用来操作IE ...
标签: Web开发
firefox中JS读取XML文件 在网上搜“firefox中JS读取XML文件”的方法,找了半天,好多都是问了没人答的。看到一堆程序员在抱怨firefox:“除了累死程序员没什么好处。”,言归正传。firefox不支持ie中的ActiveXObject对象,要得到一个XML DOM有以下2种方法: 1、document.implementation.createDocument("", "", null); 2、win...

经验教程

989

收藏

95
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部