快速业务通道

用Java从XML文件中获取业务图表 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
<Type>1</Type> <Title>Points By Player</Title> <CatTitle>Player Name</CatTitle> <ValTitle>Points</ValTitle> <SeriesTitles>Points Scored</SeriesTitles> </chart>

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

时间:2010-12-06

Servlet是如何工作的

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

配置图表对象

配置图表对象是一个两步操作。 第一步是设置图表的外观属性。 第二步是将这些数据装载入图表。

这些都是由DoChart函数来完成的。 它分析配置文件并取得一个图表类型,然后以此构造出11个图表中的一个。

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

这个函数可以很容易地扩展,以便用户增加新的设定到配置XML文件然后分析它们,这样就可以让用户很有效的知道并更改制表引擎(在本例中为JFreeChart)的属性模型,当然这一切都只要通过一个属性文件。

现在,配置变得相当简化了,与图表关联的唯一的图表类型和各种各样文本标题都可用了。

createDataset函数(见代码段3)把这些数据装载入制图引擎。 这个函数的核心目的就是把XPath应用到XML文件中来产生一维的结点列表。 它然后使用这些结点列表来生成Vector。 这些矢量被用于构造DefaultCategoryDataset对象(请参看JFreeChart文件),制表引擎使用这些DefaultCategoryDataset对象来绘制图表。

除了上面我介绍的圆饼图外,我还提供了其它的两个使用charts.xml文件构造的图表的例子(参见图3和4)。 你可以修改这个文件,然后用它来增添自己的图表。

由XML引发的数据交换革命还是刚刚开始。 每天都有新的技术出现,让我们可以用一些新鲜的并且激动人心的方法来思考我们要处理的信息。 这个图表服务器只是正在到来的激动人心的新技术的一个简单的例子而已。

代码段1 doGet函数

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String strChart = "Points"; String strX = "0"; String strY = "0"; // 读取参数 try { strChart = request.getParameter("chart").toLowerCase(); strX = request.getParameter("width"); strY = request.getParameter("height"); if(strX==null) strX = "0"; if(strY==null) strY = "0"; // 读取配置文件 dfactory = DocumentBuilderFactory.newInstance(); dfactory.setNamespaceAware(true); URLConnection con = new URL(CONFIG_LOC).openConnection(); con.connect(); InputStream newin = con.getInputStream(); xmlConfig = dfactory.newDocumentBuilder().parse(newin); // 从配置文件中取得值 // 从XML文件中取得条目 strXPath = "/root/chart[@id=''" + strChart + "'']"; niNodeList = XPathAPI.selectNodeIterator(xmlConfig, strXPath); ndeItem = niNodeList.nextNode(); elemItem = (Element) ndeItem; // 我们然后为数据服务取得特定的参数 // 接着使用这个参数来构建一个到数据源的URL strDataURL = GetChildItem(elemItem, "url"); strDataURL = strDataURL.replace(''_'',''&''); // 然后从数据源中导入XML文档 LoadDataDoc(strDataURL); // 取得配置文件的位置 strChartConfigURL = GetChildItem(elemItem, "config");

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号