CN103473295A - 从xml文件中读取设定数量的聊天记录的方法 - Google Patents

从xml文件中读取设定数量的聊天记录的方法 Download PDF

Info

Publication number
CN103473295A
CN103473295A CN2013103966404A CN201310396640A CN103473295A CN 103473295 A CN103473295 A CN 103473295A CN 2013103966404 A CN2013103966404 A CN 2013103966404A CN 201310396640 A CN201310396640 A CN 201310396640A CN 103473295 A CN103473295 A CN 103473295A
Authority
CN
China
Prior art keywords
read
xml
xml file
chat record
reading
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.)
Pending
Application number
CN2013103966404A
Other languages
English (en)
Inventor
邱欢胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Yealink Network Technology Co Ltd
Original Assignee
Xiamen Yealink Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Yealink Network Technology Co Ltd filed Critical Xiamen Yealink Network Technology Co Ltd
Priority to CN2013103966404A priority Critical patent/CN103473295A/zh
Publication of CN103473295A publication Critical patent/CN103473295A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明提供一种从XML文件中读取设定数量的聊天记录的方法,如下步骤:步骤1、设定要读取的聊天记录的数量,初始化计数器;步骤2、利用java的RandomAccessFile对XML文件进行读取,并把开始读取位置定位到最后一个字符后面;步骤3、从XML文件的最后一行开始读取,每次向上读取一行内容,接着执行判断步骤:判断该行内容中是否只包含XML的结束节点;步骤4、如果是,则计数器加1,然后判断计数器的当前值是否等于设定要读取的聊天记录的数量,如果等于,则结束读取;如果不是,继续向上读取一行内容,然后执行判断步骤和步骤4。本发明可取设定数量的聊天记录,降低了读取时的资源占用率,提高了读取速度。

Description

从XML文件中读取设定数量的聊天记录的方法
技术领域
本发明涉及一种从XML文件中读取设定数量的聊天记录的方法。
背景技术
公开号为101808073A,公开日为2010年8月18日的发明专利《一种获取节点信息的方法、服务器以及系统》公开了一种获取节点信息的方法,包括接收客户端设备发送的获取可扩充标记语言(XML)文档中节点信息的请求,所述请求为可扩充标记语言配置访问协议(XCAP)请求,所述节点信息包括:节点的数量信息或者节点的位置信息;根据所述请求,获取所述节点信息。首先,该发明统计节点的数量的方式是一次性统计出所有的数量,并不能从xml文档的末尾开始向头部进行逐个统计,其次,该发明获取的是节点的数量信息或者节点的位置信息,无法解决本发明中所要解决的技术问题——获取每个子节点以及子节点内的所有内容。
发明内容
本发明要解决的技术问题,在于提供一种从XML文件中读取设定数量的聊天记录的方法,其解决了读取聊天记录时,必须全部读取,资源占用率大,读取速度慢的问题。
本发明是这样实现的:
从XML文件中读取设定数量的聊天记录的方法,所述XML文件是标准的XML格式的聊天记录文件,所述标准的XML格式的聊天记录文件是指XML文件中的每天聊天记录都有一个开始和结束的XML节点,所述方法包括如下步骤:
步骤1、设定要读取的聊天记录的数量,并初始化计数器,将计数器的初始值设为0;
步骤2、利用java的RandomAccessFile对所述XML文件进行读取,所述XML文件打开后,获取XML文件的内容长度,并把开始读取位置定位到所述XML文件的最后一个字符后面;
步骤3、从所述XML文件的最后一行开始读取,每次向上读取一行内容,接着执行判断步骤,所述判断步骤具体为:判断该行内容中是否只包含XML的结束节点;
步骤4、如果不是,继续向上读取一行内容,然后依次执行所述判断步骤和步骤4;如果是,则计数器加1,然后判断计数器的当前值是否等于设定要读取的聊天记录的数量,如果等于,则退出所述XML文件,结束读取;如果不是,继续向上读取一行内容,然后依次执行所述判断步骤和步骤4。 
进一步地,所述步骤3中,所述XML的结束节点为<message>。
本发明具有如下优点:
本发明采用倒序方式读取xml文件,保证每次读取到的都是最新的聊天记录),同时,通过计数器对XML的结束节点进行统计,得到已读取结束节点的数量是否超过预先设定的读取数量,然后获取每个结束节点以及该结束节点内的所有内容,从而实现读取设定数量的聊天记录,降低了读取时的资源占用率,提高了读取速度。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法结构示意图。
具体实施方式
请参阅图1,对发明的具体实施例进行详细说明。
从XML文件中读取设定数量的聊天记录的方法,所述XML文件是标准的XML格式的聊天记录文件,所述标准的XML格式的聊天记录文件是指XML文件中的每天聊天记录都有一个开始和结束的XML节点,所述开始和结束的XML节点均为子节点,所述方法包括如下步骤:
步骤1、设定要读取的聊天记录的数量,并初始化计数器,将计数器的初始值设为0;
步骤2、利用java的RandomAccessFile(中文名称:随机访问类)对所述XML文件进行读取,所述XML文件打开后,获取XML文件的内容长度,并把开始读取位置定位到所述XML文件的最后一个字符后面;所述获取XML文件的内容长度是指获取到所述XML文件包含字符的个数;
步骤3、从所述XML文件的最后一行开始读取,每次向上读取一行内容,接着执行判断步骤,所述判断步骤具体为:判断该行内容中是否只包含XML的结束节点;在本实施例中,所述XML的结束节点为<message>;因本发明采用倒序方式读取XML文件,因此</message>为开始节点,<message>为结束节点;
步骤4、如果不是,继续向上读取一行内容,然后依次执行所述判断步骤和步骤4;如果是,则计数器加1,然后判断计数器的当前值是否等于设定要读取的聊天记录的数量,如果等于,则退出所述XML文件,结束读取;如果不是,继续向上读取一行内容,然后依次执行所述判断步骤和步骤4。 
现以一具体应用例子说明 聊天记录的读取过程:
首先,设定要读取500条聊天记录,初始化计数器,将计数器初始值设为0;
其次,利用java的RandomAccessFile对所述XML文件进行读取,所述XML文件打开后,获取XML文件的内容长度,并把开始读取位置定位到所述XML文件的最后一个字符后面;
打开后的XML文件,其格式如下:
<messages>
    <message>
          <body>消息一</body>
</message>
<message>
          <body>消息二</body>
</message>
<message>
          <body>消息三</body>
</message>
</messages>
以上以三条聊天记录为例,每条聊天记录的内容在<body></body>节点之间,每条聊天记录又被<message></message>节点所包含。
从所述XML文件的最后一行开始读取,每次向上读取一行内容,接着执行判断步骤,所述判断步骤具体为:判断该行内容中是否只包含<message>;如果不是,继续向上读取一行内容,然后依次执行所述判断步骤和步骤4;如果是,则计数器加1,然后判断计数器的当前值是否等于500,如果等于,则退出所述XML文件,结束读取;如果不是,继续向上读取一行内容(当前读取行如果是倒数第三行,则再向上读取一行内容,则读取倒数第四行),然后依次执行所述判断步骤并判断计数器的当前值是否等于500,直至读取到500条聊天记录,则结束读取。
本发明通过计数器对XML的结束节点进行统计,读取设定数量的聊天记录,降低了读取时的资源占用率,提高了读取速度。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (2)

1.从XML文件中读取设定数量的聊天记录的方法,其特征在于,所述XML文件是标准的XML格式的聊天记录文件,所述标准的XML格式的聊天记录文件是指XML文件中的每天聊天记录都有一个开始和结束的XML节点,所述方法包括如下步骤:
步骤1、设定要读取的聊天记录的数量,并初始化计数器,将计数器的初始值设为0;
步骤2、利用java的RandomAccessFile对所述XML文件进行读取,所述XML文件打开后,获取XML文件的内容长度,并把开始读取位置定位到所述XML文件的最后一个字符后面;
步骤3、从所述XML文件的最后一行开始读取,每次向上读取一行内容,接着执行判断步骤,所述判断步骤具体为:判断该行内容中是否只包含XML的结束节点;
步骤4、如果不是,继续向上读取一行内容,然后依次执行所述判断步骤和步骤4;如果是,则计数器加1,然后判断计数器的当前值是否等于设定要读取的聊天记录的数量,如果等于,则退出所述XML文件,结束读取,如果不等于,继续向上读取一行内容,然后依次执行所述判断步骤和步骤4。
2.根据权利要求1所述的从XML文件中读取设定数量的聊天记录的方法,其特征在于:所述步骤3中,所述XML的结束节点为<message>。
CN2013103966404A 2013-09-04 2013-09-04 从xml文件中读取设定数量的聊天记录的方法 Pending CN103473295A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013103966404A CN103473295A (zh) 2013-09-04 2013-09-04 从xml文件中读取设定数量的聊天记录的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013103966404A CN103473295A (zh) 2013-09-04 2013-09-04 从xml文件中读取设定数量的聊天记录的方法

Publications (1)

Publication Number Publication Date
CN103473295A true CN103473295A (zh) 2013-12-25

Family

ID=49798143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013103966404A Pending CN103473295A (zh) 2013-09-04 2013-09-04 从xml文件中读取设定数量的聊天记录的方法

Country Status (1)

Country Link
CN (1) CN103473295A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304305A (zh) * 2018-01-11 2018-07-20 北京潘达互娱科技有限公司 日志文件读取的方法和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054737A1 (en) * 2002-09-17 2004-03-18 Daniell W. Todd Tracking email and instant messaging (IM) thread history
CN1731737A (zh) * 2004-08-08 2006-02-08 华为技术有限公司 一种对通知日志进行操作的实现方法
CN1863058A (zh) * 2005-05-12 2006-11-15 华为技术有限公司 一种用户获取聊天室历史记录的方法和聊天室业务系统
CN102130844A (zh) * 2010-01-20 2011-07-20 腾讯科技(深圳)有限公司 获取Web聊天记录的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054737A1 (en) * 2002-09-17 2004-03-18 Daniell W. Todd Tracking email and instant messaging (IM) thread history
CN1731737A (zh) * 2004-08-08 2006-02-08 华为技术有限公司 一种对通知日志进行操作的实现方法
CN1863058A (zh) * 2005-05-12 2006-11-15 华为技术有限公司 一种用户获取聊天室历史记录的方法和聊天室业务系统
CN102130844A (zh) * 2010-01-20 2011-07-20 腾讯科技(深圳)有限公司 获取Web聊天记录的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王振兴等: "基于php和服务器推技术的Web即时聊天系统", 《计算机系统应用》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304305A (zh) * 2018-01-11 2018-07-20 北京潘达互娱科技有限公司 日志文件读取的方法和设备

Similar Documents

Publication Publication Date Title
US8407290B2 (en) Dynamic data sharing using a collaboration-enabled web browser
US9563607B2 (en) System and method for creating slideshows
KR101692796B1 (ko) 싱글 사인온 서비스를 용이하게 하는 방법 및 장치
US9130922B2 (en) Using a session continuity token to access an online content management system
US20160350214A1 (en) Idle time software garbage collection
WO2016037441A1 (zh) 视频广告的过滤方法、装置和设备
CN109388766A (zh) 页面加载的方法和装置
CN108055304B (zh) 远程数据的同步方法、装置、服务器、设备和存储介质
US20180131779A1 (en) Recording And Triggering Web And Native Mobile Application Events With Mapped Data Fields
US20140101739A1 (en) Semantic challenge for audio human interactive proof
KR20180090184A (ko) 음성 기동 컴퓨터 네트워크 환경에서의 시퀀스 종속 데이터 메시지 통합
US20160026728A1 (en) Interaction Method And Device Between Browsers And Browser
WO2014176919A1 (en) Method and system for displaying recommended pages by terminal device
EP3879840A1 (en) Definition switching method and apparatus, computer device, and readable storage medium
CN110020305B (zh) 网页加载方法、装置、计算机设备和存储介质
CN110069533B (zh) 一种基于区块链的事件订阅方法及装置
WO2020177519A1 (zh) 在智能终端上执行的调试方法以及软件调试器
CN104090896A (zh) 一种导入数据的方法、装置和系统
WO2011104260A2 (en) Short message processing method and apparatus
CN111200651A (zh) 定时调用微服务的方法、系统、设备和介质
EP4123472A1 (en) Information sharing method, apparatus, electronic device, and storage medium
EP3869330A1 (en) Method and apparatus for lazy loading of js script
CN110286954B (zh) 一种应用程序的启动方法、装置及存储介质
CN103473295A (zh) 从xml文件中读取设定数量的聊天记录的方法
US20150229600A1 (en) Method, Apparatus, And System For Automatically Prompting User To Sign Up For Microblog

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131225