CN104317935A - 一种xml账单文件批量生成html页面的方法及系统 - Google Patents
一种xml账单文件批量生成html页面的方法及系统 Download PDFInfo
- Publication number
- CN104317935A CN104317935A CN201410602616.6A CN201410602616A CN104317935A CN 104317935 A CN104317935 A CN 104317935A CN 201410602616 A CN201410602616 A CN 201410602616A CN 104317935 A CN104317935 A CN 104317935A
- Authority
- CN
- China
- Prior art keywords
- xml
- file
- files
- billing
- html
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种XML账单批量生成HTML页面的方法及系统,所述方法包括:步骤1,读取所有用户的XML账单文件,过滤出满足预定的文件名格式的XML账单文件;步骤2,构建满足预定的文件名格式的XML账单文件的账单编号表;步骤3,解析各个XML账单文件,将XML账单文件批量解析成以用户为单位的多个XML文件信息串,并在解析第一个XML账单文件的同时构建一个公共的文件头信息;步骤4,将公共的文件头信息结合以用户为单位的多个XML文件信息串,生成以用户为单位,并以账单编号为文件名的多个XML中间文件;步骤5,将各个XML中间文件转换成与其文件名相同的HTML文件。本发明降低了账单查询功能大并发的请求对系统性能的影响,有利于提高查询响应速度以及用户体验。
Description
技术领域
本发明涉及电信行业的前台用户账单展现技术,特别是涉及一种XML账单文件批量生成HTML页面的方法及系统。
背景技术
目前在电信行业业务支撑系统中,用户每月的账单都是按照一定的格式,以XML的方式生成,所有用户都的账单信息都存储在这一个XML文件中,只有通过元素和属性来描述数据,而不提供数据的显示方法。这样处理的好处在于可以独立于平台和语言,能够方便地实现数据存储和交换,但是非常不利于系统前台功能的查询展现。用户如果想查询某月账单,则系统每次都需要对整个XML文件进行处理,不仅查询速度慢、耗费大量的系统资源,而且无法灵活的对各种类型用户展示相应的账单风格。
因此,如何才能在降低系统资源消耗的前提下,最大程度地提高账单查询速度,并能支持不同类型用户账单风格展示的多样性等,已成为一个亟待解决的问题。
发明内容
本发明所要解决的技术问题是提供一种XML账单文件批量生成HTML页面的方法及系统,用于解决提高用户账单查询速度和展现用户账单的问题。
本发明解决上述技术问题的技术方案如下:一种XML账单批量生成HTML页面的方法,包括:
步骤1,读取所有用户的XML账单文件,过滤出满足预定的文件名格式的XML账单文件;
步骤2,根据各个XML账单文件的文件名构建满足预定的文件名格式的XML账单文件的账单编号表;
步骤3,按账单编号表的次序,逐行解析各个XML账单文件,将XML账单文件批量解析成以用户为单位的多个XML文件信息串,并在解析第一个XML账单文件的同时构建一个公共的文件头信息;
步骤4,将公共的文件头信息结合以用户为单位的多个XML文件信息串,生成以用户为单位,并以账单编号为文件名的多个XML中间文件;
步骤5,将各个XML中间文件转换成与其文件名相同的HTML文件。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,执行所述步骤1之前还包括:初始化需使用的文件路径,包括XML账单文件路径、各类型XML账单文件对应的XSL样式表文件路径和最终生成的HTML文件的路径。
进一步,所述步骤3中通过每个XML账单文件的起始标签,将XML账单文件批量解析成以用户为单位的多个XML文件信息串。
进一步,所述文件头信息包括文件版本、编码说明以及文件对应的样式表文件名。
进一步,所述步骤5具体包括:以XML中间文件、各类型XML账单文件对应的XSL样式表文件和输出文件目录为输入,调用XML转HTML的文件处理器,将各个XML中间文件转换成以用户账单编号为文件名的html文件。
进一步,还包括:生成HTML文件后,对原XML账单文件进行重命名。
进一步,还包括:生成HTML文件后,清理产生的XML中间文件。
本发明的技术方案还包括一种XML账单批量生成HTML页面的系统,包括:
文件过滤模块,其用于读取所有用户的XML账单文件,过滤出满足预定的文件名格式的XML账单文件;
账单编号表生成模块,其用于根据各个XML账单文件的文件名构建满足预定的文件名格式的XML账单文件的账单编号表;
文件解析模块,其用于按账单编号表的次序,逐行解析各个XML账单文件,将XML账单文件批量解析成以用户为单位的多个XML文件信息串,并在解析第一个XML账单文件的同时构建一个公共的文件头信息;
中间文件生成模块,其用于将公共的文件头信息结合以用户为单位的多个XML文件信息串,生成以用户为单位,并以账单编号为文件名的多个XML中间文件;
HTML文件生成模块,其用于将各个XML中间文件转换成与其文件名相同的HTML文件。
进一步,还包括初始化模块、重命名模块和/或中间文件清理模块;
所述初始化模块,其用于初始化需使用的文件路径,包括XML账单文件路径、各类型XML账单文件对应的XSL样式表文件路径和最终生成的HTML文件的路径;
所述重命名模块,其用于在生成HTML文件后,对原XML账单文件进行重命名;
所述中间文件清理模块,其用于在生成HTML文件后,清理产生的XML中间文件。
进一步,所述HTML文件生成模块用于将各个XML中间文件转换成与其文件名相同的HTML文件具体包括:以XML中间文件、各类型XML账单文件对应的XSL样式表文件和输出文件目录为输入,调用XML转HTML的文件处理器,将各个XML中间文件转换成以用户账单编号为文件名的html文件。
本发明的有益效果是:本发明可以在某个时间点(比如系统闲时),集中地对系统账单XML数据文件进行处理,并结合账单XSLT样式表,生成能直接在前台展现的HTML文件,不仅能最大限度地降低账单查询功能大并发的请求对系统性能的影响,而且具有非常快的查询响应速度以及非常好的用户体验。
附图说明
图1为本发明所述XML账单批量生成HTML页面的方法的流程示意图;
图2为本发明实施例中XML账单批量生成HTML页面实施过程示意图;
图3为实施例采用所述生成HTML页面的方法进行账单处理的示意图;
图4为本发明所述XML账单批量生成HTML页面的系统的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本实施例给出了一种XML账单批量生成HTML页面的方法,包括:
步骤1,读取所有用户的XML账单文件,过滤出满足预定的文件名格式的XML账单文件;
步骤2,根据各个XML账单文件的文件名构建满足预定的文件名格式的XML账单文件的账单编号表;
步骤3,按账单编号表的次序,逐行解析各个XML账单文件,将XML账单文件批量解析成以用户为单位的多个XML文件信息串,并在解析第一个XML账单文件的同时构建一个公共的文件头信息;
步骤4,将公共的文件头信息结合以用户为单位的多个XML文件信息串,生成以用户为单位,并以账单编号为文件名的多个XML中间文件;
步骤5,将各个XML中间文件转换成与其文件名相同的HTML文件。
如图2所示,基于上述5个步骤,具体的实施过程如下。
1)初始化需使用的文件路径,包括XML账单文件路径、各类型XML账单文件对应的XSL样式表文件路径和最终生成的HTML文件的路径。
2)建立实时扫描定时器,实时扫描源XML账单文件的目录。
3)上传每月的XML账单数据,以固定文件名“yyyymm.xml”上传到服务器指定的文件目录,形成XML账单文件,其中yyyymm为账单数据归属的年月,每种类型的用户每月一个文件。按照此文件名命名规则建立文件名过滤器,对实时扫描到的文件进行过滤,只处理满足过滤条件的文件。
关键代码如下:
4)满足过滤条件的文件即为需要处理的源xml账单文件,读取文件名中的年月,作为输出的html文件目录名,结合步骤1)的初始化中的“各类型账单html结果文件最终生成的路径”判断该目录是否存在,若不存在则新建该目录。
5)以源xml账单文件名全路径为输入,调用XML解析器,构建一个内容为所有用户的账单编号表,作为后续HTML文件的文件名。
关键代码如下:
6)将xml账单文件读入内存,并逐行进行解析,通过每个用户账单信息的起始标签“<bill”,将整个xml账单文件批量解析成以用户为单位的多个xml文件信息串。
代码片段如下:
7)在对第一个XML账单文件进行解析的同时,构建一个公共的文件头信息,供当前用户及后续所有用户使用。所述文件头信息包括文件版本、编码说明以及文件对应的样式表文件名。
文件头信息可举例如下:
<?xml version="1.0"encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"href="billfile.xsl"?>
8)将公共的文件头信息结合以用户为单位的多个xml文件信息串,生成以用户为单位并以用户账单编号为文件名的多个xml中间文件。
代码片段如下:
xmlContent.append(tmp.substring(0,indexOfBill));
FileWriter out=new FileWriter(new File(filename).getAbsoluteFile());
BufferedWriter bout=new BufferedWriter(out);
bout.write(subFileHeader.toString());
bout.write(xmlContent.toString());
bout.flush();
out.close();
9)以XML中间文件、各类型XML账单文件对应的XSL样式表文件和输出文件目录为输入,调用XML转HTML的开源文件处理器javax.xml.transform.Transformer,将各个XML中间文件转换成以用户账单编号为文件名的html文件。
代码片段如下:
TransformerFactoryImpl factory=new TransformerFactoryImpl();
Templates sheet=factory.newTemplates(styleSource);
Transformer instance=sheet.newTransformer();
Result result=new StreamResult(outputFile);
instance.transform(sourceInput,result);
其中,XSL样式表文件是一种用于可读格式呈现XML数据的语言文件,可描述如何来显示XML文档,XML文档只负责静态数据,显示则由XSL样式表文件负责,在同一个XML账单文件中,可以根据不同的用户群体,定义不同的XSL样式表文件实现不同的显示效果。
XSL文件片段如下:
10)对已经处理的xml账单文件进行重命名,避免对其重复处理;清理程序处理过程中产生的xml中间文件,以节省磁盘空间。
基于步骤1)至步骤10)的生成HTML页面的方法,如图3所示,处理数据账单的具体例子如下:
首先,每月将源账单xml数据文件上传到指定目录。
其次,后台进程会自动将该源账单xml数据文件解析为单个用户账单数据html文件,即步骤1)至步骤10)。
最后,前台接收到用户查询账单请求后,根据查询账单账期yyyymm和用户账单编号生成用户账单数据html文件全路径,并展现该html文件即可。
如图4所示,本实施例还对应给出了一种XML账单批量生成HTML页面的系统,包括:
文件过滤模块,其用于读取所有用户的XML账单文件,过滤出满足预定的文件名格式的XML账单文件;
账单编号表生成模块,其用于根据各个XML账单文件的文件名构建满足预定的文件名格式的XML账单文件的账单编号表;
文件解析模块,其用于按账单编号表的次序,逐行解析各个XML账单文件,将XML账单文件批量解析成以用户为单位的多个XML文件信息串,并在解析第一个XML账单文件的同时构建一个公共的文件头信息;
中间文件生成模块,其用于将公共的文件头信息结合以用户为单位的多个XML文件信息串,生成以用户为单位,并以账单编号为文件名的多个XML中间文件;
HTML文件生成模块,其用于将各个XML中间文件转换成与其文件名相同的HTML文件。
此外,还包括初始化模块、重命名模块和/或中间文件清理模块;
所述初始化模块,其用于初始化需使用的文件路径,包括XML账单文件路径、各类型XML账单文件对应的XSL样式表文件路径和最终生成的HTML文件的路径;
所述重命名模块,其用于在生成HTML文件后,对原XML账单文件进行重命名;
所述中间文件清理模块,其用于在生成HTML文件后,清理产生的XML中间文件。
其中,所述HTML文件生成模块用于将各个XML中间文件转换成与其文件名相同的HTML文件具体包括:以XML中间文件、各类型XML账单文件对应的XSL样式表文件和输出文件目录为输入,调用XML转HTML的文件处理器,将各个XML中间文件转换成以用户账单编号为文件名的html文件。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种XML账单批量生成HTML页面的方法,其特征在于,包括:
步骤1,读取所有用户的XML账单文件,过滤出满足预定的文件名格式的XML账单文件;
步骤2,根据各个XML账单文件的文件名构建满足预定的文件名格式的XML账单文件的账单编号表;
步骤3,按账单编号表的次序,逐行解析各个XML账单文件,将XML账单文件批量解析成以用户为单位的多个XML文件信息串,并在解析第一个XML账单文件的同时构建一个公共的文件头信息;
步骤4,将公共的文件头信息结合以用户为单位的多个XML文件信息串,生成以用户为单位,并以账单编号为文件名的多个XML中间文件;
步骤5,将各个XML中间文件转换成与其文件名相同的HTML文件。
2.根据权利要求1所述的方法,其特征在于,执行所述步骤1之前还包括:初始化需使用的文件路径,包括XML账单文件路径、各类型XML账单文件对应的XSL样式表文件路径和最终生成的HTML文件的路径。
3.根据权利要求1所述的方法,其特征在于,所述步骤3中通过每个XML账单文件的起始标签,将XML账单文件批量解析成以用户为单位的多个XML文件信息串。
4.根据权利要求1所述的方法,其特征在于,所述文件头信息包括文件版本、编码说明以及文件对应的样式表文件名。
5.根据权利要求1所述的方法,其特征在于,所述步骤5具体包括:以XML中间文件、各类型XML账单文件对应的XSL样式表文件和输出文件目录为输入,调用XML转HTML的文件处理器,将各个XML中间文件转换成以用户账单编号为文件名的html文件。
6.根据权利要求1所述的方法,其特征在于,还包括:生成HTML文件后,对原XML账单文件进行重命名。
7.根据权利要求1所述的方法,其特征在于,还包括:生成HTML文件后,清理产生的XML中间文件。
8.一种XML账单批量生成HTML页面的系统,其特征在于,包括:
文件过滤模块,其用于读取所有用户的XML账单文件,过滤出满足预定的文件名格式的XML账单文件;
账单编号表生成模块,其用于根据各个XML账单文件的文件名构建满足预定的文件名格式的XML账单文件的账单编号表;
文件解析模块,其用于按账单编号表的次序,逐行解析各个XML账单文件,将XML账单文件批量解析成以用户为单位的多个XML文件信息串,并在解析第一个XML账单文件的同时构建一个公共的文件头信息;
中间文件生成模块,其用于将公共的文件头信息结合以用户为单位的多个XML文件信息串,生成以用户为单位,并以账单编号为文件名的多个XML中间文件;
HTML文件生成模块,其用于将各个XML中间文件转换成与其文件名相同的HTML文件。
9.根据权利要求8所述的系统,其特征在于,还包括初始化模块、重命名模块和/或中间文件清理模块;
所述初始化模块,其用于初始化需使用的文件路径,包括XML账单文件路径、各类型XML账单文件对应的XSL样式表文件路径和最终生成的HTML文件的路径;
所述重命名模块,其用于在生成HTML文件后,对原XML账单文件进行重命名;
所述中间文件清理模块,其用于在生成HTML文件后,清理产生的XML中间文件。
10.根据权利要求8所述的系统,其特征在于,所述HTML文件生成模块用于将各个XML中间文件转换成与其文件名相同的HTML文件具体包括:以XML中间文件、各类型XML账单文件对应的XSL样式表文件和输出文件目录为输入,调用XML转HTML的文件处理器,将各个XML中间文件转换成以用户账单编号为文件名的html文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602616.6A CN104317935B (zh) | 2014-10-31 | 2014-10-31 | 一种xml账单文件批量生成html页面的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602616.6A CN104317935B (zh) | 2014-10-31 | 2014-10-31 | 一种xml账单文件批量生成html页面的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104317935A true CN104317935A (zh) | 2015-01-28 |
CN104317935B CN104317935B (zh) | 2017-09-08 |
Family
ID=52373167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410602616.6A Active CN104317935B (zh) | 2014-10-31 | 2014-10-31 | 一种xml账单文件批量生成html页面的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104317935B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701151A (zh) * | 2015-12-29 | 2016-06-22 | 浪潮(北京)电子信息产业有限公司 | 一种系统信息获取方法和装置 |
CN108920437A (zh) * | 2018-07-12 | 2018-11-30 | 中国工程物理研究院计算机应用研究所 | 基于xsl将xml文档转换为html格式文档的方法 |
CN110019968A (zh) * | 2017-10-27 | 2019-07-16 | 北大方正集团有限公司 | Xml文件的处理方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050066267A1 (en) * | 2003-08-01 | 2005-03-24 | Takeshi Kanai | Information processing system and method, program, and recording medium |
CN103679461A (zh) * | 2012-09-03 | 2014-03-26 | 中国银联股份有限公司 | 一种基于xml的电子票据处理方法和系统 |
-
2014
- 2014-10-31 CN CN201410602616.6A patent/CN104317935B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050066267A1 (en) * | 2003-08-01 | 2005-03-24 | Takeshi Kanai | Information processing system and method, program, and recording medium |
CN103679461A (zh) * | 2012-09-03 | 2014-03-26 | 中国银联股份有限公司 | 一种基于xml的电子票据处理方法和系统 |
Non-Patent Citations (1)
Title |
---|
李榕 等: "基于XML的动态数据报表生成技术", 《微计算机信息》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701151A (zh) * | 2015-12-29 | 2016-06-22 | 浪潮(北京)电子信息产业有限公司 | 一种系统信息获取方法和装置 |
CN105701151B (zh) * | 2015-12-29 | 2019-09-24 | 浪潮(北京)电子信息产业有限公司 | 一种系统信息获取方法和装置 |
CN110019968A (zh) * | 2017-10-27 | 2019-07-16 | 北大方正集团有限公司 | Xml文件的处理方法和装置 |
CN110019968B (zh) * | 2017-10-27 | 2021-04-09 | 北大方正集团有限公司 | Xml文件的处理方法和装置 |
CN108920437A (zh) * | 2018-07-12 | 2018-11-30 | 中国工程物理研究院计算机应用研究所 | 基于xsl将xml文档转换为html格式文档的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104317935B (zh) | 2017-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
He | Design and implementation of web based on Laravel framework | |
US9384248B2 (en) | Database query language gateway | |
CN102768636B (zh) | 一种日志解析方法及装置 | |
Lebo et al. | Converting governmental datasets into linked data | |
CN105447099A (zh) | 日志结构化信息提取方法及装置 | |
CN103365847B (zh) | 一种自定义网页文件的生成方法和装置 | |
US20050050555A1 (en) | Universal application network architecture | |
KR101122629B1 (ko) | 데이터베이스의 데이터를 변환하여 xml 문서를 생성하는 방법 | |
US20090112901A1 (en) | Software, Systems and Methods for Modifying XML Data Structures | |
CN102567514B (zh) | 一种数据处理方法及系统 | |
CN103425726A (zh) | 使用业务智能工具访问开放数据 | |
CN102253984A (zh) | 查询语句处理装置和查询语句处理方法 | |
JP2007535026A5 (zh) | ||
CN103473234A (zh) | 一种从web查询系统导出报表的方法、装置及系统 | |
CN105278961A (zh) | 生成数据库表结构文档的方法及系统 | |
CN105069116A (zh) | 一种将json串转化为数组的方法及系统 | |
CN104317935A (zh) | 一种xml账单文件批量生成html页面的方法及系统 | |
KR101166763B1 (ko) | 웹 상에서 xml 문서의 데이터를 데이터베이스에 통합하는 방법 | |
Marienfeld et al. | Metadata aggregation at govdata. de: An experience report | |
US20140122511A1 (en) | Framework for generating programs to process beacons | |
CN104021216B (zh) | 消息代理服务器及信息发布订阅方法和系统 | |
CN114676686A (zh) | 数据字典处理方法、翻译方法及相关装置 | |
US10387493B2 (en) | Methods for converting an XML artifact into a topic map instance and devices thereof | |
Eckert | Provenance and annotations for linked data | |
CN103793464A (zh) | 一种基于中立格式的报表导出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |