Welcome![Sign In][Sign Up]
Location:
Search - 文件分离

Search list

[Internet-Network用Java编写HTML文件分析程序

Description:

Java编写HTML文件分析程序

 一、概述

    

    Web服务器的核心是对Html文件中的各标记(Tag)作出正确的分析,一种编程语言的解释程序也是对源文件中的保留字进行分析再做解释的。实际应用中,我们也经常会碰到需要对某一特定类型文件进行要害字分析的情况,比如,需要将某个HTML文件下载并同时下载与之相关的.gif.class等文件,此时就要求对HTML文件中的标记进行分离,找出所需的文件名及目录。在Java出现以前,类似工作需要对文件中的每个字符进行分析,从中找出所需部分,不仅编程量大,且易出错。笔者在近期的项目中利用Java的输入流类StreamTokenizer进行HTML文件的分析,效果较好。在此,我们要实现从已知的Web页面下载HTML文件,对其进行分析后,下载该页面中包含的HTML文件(假如在Frame中)、图像文件和ClassJava Applet)文件。

    

    二、StreamTokenizer

    

    StreamTokenizer即令牌化输入流的作用是将一个输入流中变成令牌流。令牌流中的令牌实体有三类:单词(即多字符令牌)、单字符令牌和空白(包括JavaC/C++中的说明语句)。

    

    StreamTokenizer类的构造器为: StreamTokenizer(InputStream in)

    

    该类有一些公有实例变量:ttypesvalnval ,分别表示令牌类型、当前字符串值和当前数字值。当我们需要取得令牌(即HTML中的标记)之间的字符时,应访问变量sval。而读向下一个令牌的方法是调用nextToken()。方法nextToken()的返回值是int型,共有四种可能的返回:

    

    StreamTokenizer.TT_NUMBER: 表示读到的令牌是数字,数字的值是double型,可以从实例变量nval中读取。

    

    StreamTokenizer.TT_Word: 表示读到的令牌是非数字的单词(其他字符也在其中),单词可以从实例变量sval中读取。

    

    StreamTokenizer.TT_EOL: 表示读到的令牌是行结束符。

    

    假如已读到流的尽头,则nextToken()返回TT_EOF

    

    开始调用nextToken()之前,要设置输入流的语法表,以便使分析器辨识不同的字符。WhitespaceChars(int low, int hi)方法定义没有意义的字符的范围。WordChars(int low, int hi)方法定义构造单词的字符范围。

    

    三、程序实现

    

    1HtmlTokenizer类的实现

    

    对某个令牌流进行分析之前,首先应对该令牌流的语法表进行设置,在本例中,即是让程序分出哪个单词是HTML的标记。下面给出针对我们需要的HTML标记的令牌流类定义,它是StreamTokenizer的子类:

    

    

    import java.io.*;

    import java.lang.String;

    class HtmlTokenizer extends

    StreamTokenizer {

    //定义各标记,这里的标记仅是本例中必须的,

    可根据需要自行扩充

     static int HTML_TEXT=-1;

     static int HTML_UNKNOWN=-2;

     static int HTML_EOF=-3;

     static int HTML_IMAGE=-4;

     static int HTML_FRAME=-5;

     static int HTML_BACKGROUND=-6;

     static int HTML_APPLET=-7;

    

    boolean outsideTag=true; //判定是否在标记之中

    

     //构造器,定义该令牌流的语法表。

     public HtmlTokenizer(BufferedReader r) {

    super(r);

    this.resetSyntax(); //重置语法表

    this.wordChars(0,255); //令牌范围为全部字符

    this.ordinaryChar('< '); //HTML标记两边的分割符

    this.ordinaryChar('>');

     } //end of constrUCtor

    

     public int nextHtml(){

    int token; //令牌

    try{

    switch(token=this.nextToken()){

    case StreamTokenizer.TT_EOF:

    //假如已读到流的尽头,则返回TT_EOF

    return HTML_EOF;

    case '< ': //进入标记字段

    outsideTag=false;

    return nextHtml();

    case '>': //出标记字段

    outsideTag=true;

    return nextHtml();

    case StreamTokenizer.TT_WORD:

    //若当前令牌为单词,判定是哪个标记

    if (allWhite(sval))

     return nextHtml(); //过滤其中空格

    else if(sval.toUpperCase().indexOf("FRAME")

    !=-1 && !outsideTag) //标记FRAME

     return HTML_FRAME;

    else if(sval.toUpperCase().indexOf("IMG")

    !=-1 && !outsideTag) //标记IMG

     return HTML_IMAGE;

    else if(sval.toUpperCase().indexOf("BACKGROUND")

    !=-1 && !outsideTag) //标记BACKGROUND

     return HTML_BACKGROUND;

    else if(sval.toUpperCase().indexOf("APPLET")

    !=-1 && !outsideTag) //标记APPLET

     return HTML_APPLET;

    default:

    System.out.println ("Unknown tag: "+token);

    return HTML_UNKNOWN;

     } //end of case

    }catch(IOException e){

    System.out.println("Error:"+e.getMessage());}

    return HTML_UNKNOWN;

     } //end of nextHtml

    

    protected boolean allWhite(String s){//过滤所有空格

    //实现略

     }// end of allWhite

    

    } //end of class

    

    以上方法在近期项目中测试通过,操作系统为Windows NT4,编程工具使用Inprise Jbuilder3


Platform: | Size: 1066 | Author: tiberxu | Hits:

[Windows DevelopInstaller

Description: 安装程序源代码。实现了由资源文件分离出待安装的文件,复制到目标机上。参考它,可以作出非常专业的安装程序。-installation program source code. Achieved the resource documents to be isolated from the installation documents, copied to the target machine. Refer to it, can make a very professional setup program.
Platform: | Size: 5512055 | Author: 王宏志 | Hits:

[mpeg mp3avi2raw

Description: avi 的分离源码.把容器里的视频文件和音频文件分离开来.也许对你有用-avi source separation. Put containers of video and audio files are separated. It may be useful to you
Platform: | Size: 3522 | Author: 孙怀明 | Hits:

[Other resourceOptimize

Description: MATLAB 6_5 辅助优化计算与设计 1、文件命名说明 a)文件夹“第1章”中的文件对应书中第1章的例程,其他以此类推; b) 文件名exampleX1_X2.m:对应例程X1_X2 例如:example2_1表示例程2_1. 2、注意 为了方便起见,书中的每一个例程存为一个文件;而有些例程中将其调用的函数文件也放在这个例程文件中,所以读者在运行光盘中的例程文件时注意这一点,如果是这样的例程文件应该将其调用的函数文件分离出来另存为一个文件。-MATLAB 6_5 Auxiliary and Design Optimization 1, Note document naming a) folder "Chapter 1" in the document corresponding book Chapter 1 of the routines, other analogy; b) Name exampleX1_X2.m : X1_X2 corresponding routines such as : example2_1 said two compression routines. 2, the attention for the sake of convenience, Each book deposit for a routine one; Some routines will call a function of its documents on the routines document, Therefore, the reader is running the routines CD document to this point, If this is the routine document should be called to separate the function documents saved as a file.
Platform: | Size: 69017 | Author: lyf | Hits:

[Streaming Mpeg4AVI-Mux_GUI-1.17.7-Src

Description: AVI-Mux 是一款综合性的视频文件分离/合成工具
Platform: | Size: 611722 | Author: 潘振宇 | Hits:

[Multimedia programdecodevob15

Description: 将dvd中的节目文件分离出视频和音频数据。-dvd will document the program separated video and audio data.
Platform: | Size: 32227 | Author: 严权锋 | Hits:

[Windows Develop文件分离与合并

Description: 文件分离与合并
Platform: | Size: 50722 | Author: watchworld | Hits:

[Windows DevelopInstaller

Description: 安装程序源代码。实现了由资源文件分离出待安装的文件,复制到目标机上。参考它,可以作出非常专业的安装程序。-installation program source code. Achieved the resource documents to be isolated from the installation documents, copied to the target machine. Refer to it, can make a very professional setup program.
Platform: | Size: 5512192 | Author: 王宏志 | Hits:

[Multimedia Developdecodevob15

Description: 将dvd中的节目文件分离出视频和音频数据。-dvd will document the program separated video and audio data.
Platform: | Size: 31744 | Author: | Hits:

[File Formatmfile

Description: 打开多个文件的例子(33KB)19fileinfo1.zip取得文件信息(4KB)20文件操作相关.zip常用的4个文件函数:检查文件是否存在; 分离文件路径等(2KB)21winpe.zip分析PE文件格式(105KB)-open multiple files example (33KB) 19fileinfo1.zip obtained the document information (4KB) 20 documents related operations. Zip four common document functions : check file exists; Separation documents path, etc. (2 KB) 21winpe.zip analysis PE file format (105KB )
Platform: | Size: 33792 | Author: 陈新 | Hits:

[Internet-NetworkFilesNet135065

Description: 本系统是在asp版《在线文件管理器》的基础上设计制作,取其精华,弃其糟粕,功能更强,效率更高,具有以下特点: 1。采用三层结构开发,程序逻辑和用户界面彻底分离,可轻松换肤。 2。全部代码采用Ultra Edit编写,不使用任何可视化开发工具,精确控制代码流程,确保代码高效率运行。 3。自行开发自定义控件,不产生任何一丁点的HTML代码冗余。 4。尽可能的减少客户与服务器的交互,降低对服务器资源消耗,减少网络传输。 5。真正多用户系统,可分别为每个用户设置可管理的文件类型,目录等,上传的单个文件大小限制等。 6。各用户环境自由配置,风格自选(如果有多个风格的话),可自由设置每页显示的文件及目录数等。 7。文件与目录翻页分开,即使管理同一目录下的数万个文件也不再出现程序超时现象。 8。功能强大,除了asp版具备的全部功能如上传、下载、编辑、批量复制、移动、粘贴外还具备文件快速过滤搜索,智能修改文件属性。 9。效率极高。经测试,在一太普通PC上对一个包含50000个文件的目录进行浏览管理,任意翻页,执行时间均不超过1秒。过滤或者搜索则更是低至仅0.3秒的执行时间。而windows资源管理器打开目录或者asp版翻至最后一页都需要6.5秒甚至更长时间。-the system is the asp edition of "online document management device" on the basis of the design, select the essence and disposable dross, more powerful, more efficient and has the following features : 1. The development of a three-tier structure, procedures and user interface logic completely separated easily Eurocargo. 2. All the code used Ultra Edit preparation, not the use of any visual development tools, precision flow control code, the code to ensure efficient operation. 3. Developed OCX, without generating any one little bit of HTML code redundancy. 4. Minimizing the client and server interaction, reduce consumption of server resources and reduce network transmission. 5. A truly multi-user system can be set up for each user can manage the file type, directory, upload a sing
Platform: | Size: 335872 | Author: 刘元凯 | Hits:

[OtherCnforums201

Description: 本系统是在asp版《在线文件管理器》的基础上设计制作,取其精华,弃其糟粕,功能更强,效率更高,具有以下特点: 1。采用三层结构开发,程序逻辑和用户界面彻底分离,可轻松换肤。 2。全部代码采用Ultra Edit编写,不使用任何可视化开发工具,精确控制代码流程,确保代码高效率运行。 3。自行开发自定义控件,不产生任何一丁点的HTML代码冗余。 4。尽可能的减少客户与服务器的交互,降低对服务器资源消耗,减少网络传输。 5。真正多用户系统,可分别为每个用户设置可管理的文件类型,目录等,上传的单个文件大小限制等。 6。各用户环境自由配置,风格自选(如果有多个风格的话),可自由设置每页显示的文件及目录数等。 7。文件与目录翻页分开,即使管理同一目录下的数万个文件也不再出现程序超时现象。 8。功能强大,除了asp版具备的全部功能如上传、下载、编辑、批量复制、移动、粘贴外还具备文件快速过滤搜索,智能修改文件属性。 9。效率极高。经测试,在一太普通PC上对一个包含50000个文件的目录进行浏览管理,任意翻页,执行时间均不超过1秒。过滤或者搜索则更是低至仅0.3秒的执行时间。而windows资源管理器打开目录或者asp版翻至最后一页都需要6.5秒甚至更长时间。-the system is the asp edition of "online document management device" on the basis of the design, select the essence and disposable dross, more powerful, more efficient and has the following features : 1. The development of a three-tier structure, procedures and user interface logic completely separated easily Eurocargo. 2. All the code used Ultra Edit preparation, not the use of any visual development tools, precision flow control code, the code to ensure efficient operation. 3. Developed OCX, without generating any one little bit of HTML code redundancy. 4. Minimizing the client and server interaction, reduce consumption of server resources and reduce network transmission. 5. A truly multi-user system can be set up for each user can manage the file type, directory, upload a sing
Platform: | Size: 6574080 | Author: 甘永祥 | Hits:

[matlabamuse

Description: 这是利用特征值分解的盲源分离的源函数文件,可以直接调用-This is the eigenvalue decomposition of Blind Source Separation of source function, can be called directly
Platform: | Size: 1024 | Author: 陈勇 | Hits:

[Other高级通信程序

Description: 这是一个自我感觉很好的通信程序,它的特点: 1.数据包格式全部自己定义。 所有的定义和通信核心类全部在COMM文件夹中。 2.能处理大量客户端同时通信的情况,客户和服务端共用相同的通信对象,并且可以实现互传。 3.通信细节全部封装在几个通用的类中,隐藏了交互通信的所有处理细节,如断包处理,超时重发等功能。 4.数据通信和数据具体应用完全分离,扩展性良好,本例中只做一个上传文件的例子,你可以在不用改动通信核心的情况下,可以实现远程控制所需的任何功能,并且不需要考虑通信细节。具体方法可以参考:CommSrvApps 单元的TSrvApp_File类,只需写一个新类即可: TSrvApp_File = class(TServerAppObject) public function ProcessData(ABuf: PChar ASize: integer): integer override end 通过以上类配合通信核心类,实现了远程实时传送一个文件就像copy那么简单。 其它: 此程序是我自己开发的连锁超市方案中数据交换的应用实例,所以客户端和服务端的代码有点多,但多是与通信本身无关,所实现的功能是将本地Local文件夹与远程Remote文件夹的.rs文件互相进行传送。 -this a good feeling of self-communication program, which features : 1. All data packet format own definition. All the definition and communication in all core categories COMM folder. 2. Can handle a large number of client communications in the same time, customer-service and sharing the same communications targets, and can interoperate Chuan. 3. Details of all communications package in a few general categories, interactive communications hidden handle all the details, such as broken packet processing, heavy overtime, among other functions. 4. Data communications and specific application data separation, scalability good, in this case they should only upload documents example, you can not change the core of communication, remote control can be achieved for any function, and need not cons
Platform: | Size: 214016 | Author: sr | Hits:

[File OperateFilesNet146102

Description: 本系统是在asp版《在线文件管理器》的基础上设计制作,取其精华,弃其糟粕,功能更强,效率更高,具有以下特点: 1。采用三层结构开发,程序逻辑和用户界面彻底分离,可轻松换肤。 2。全部代码采用Ultra Edit编写,不使用任何可视化开发工具,精确控制代码流程,确保代码高效率运行。 3。自行开发自定义控件,不产生任何一丁点的HTML代码冗余。 4。尽可能的减少客户与服务器的交互,降低对服务器资源消耗,减少网络传输。 5。真正多用户系统,可分别为每个用户设置可管理的文件类型,目录等,上传的单个文件大小限制等。 6。各用户环境自由配置,风格自选(如果有多个风格的话),可自由设置每页显示的文件及目录数等。 7。文件与目录翻页分开,即使管理同一目录下的数万个文件也不再出现程序超时现象。 8。功能强大,除了asp版具备的全部功能如上传、下载、编辑、批量复制、移动、粘贴外还具备文件快速过滤搜索,智能修改文件属性。 9。效率极高。经测试,在一太普通PC上对一个包含50000个文件的目录进行浏览管理,任意翻页,执行时间均不超过1秒。过滤或者搜索则更是低至仅0.3秒的执行时间。而windows资源管理器打开目录或者asp版翻至最后一页都需要6.5秒甚至更长时间。-the system is the asp edition of "online document management device" on the basis of the design, select the essence and disposable dross, more powerful, more efficient and has the following features : 1. The development of a three-tier structure, procedures and user interface logic completely separated easily Eurocargo. 2. All the code used Ultra Edit preparation, not the use of any visual development tools, precision flow control code, to ensure the efficient operation code. 3. Developed OCX, without generating any one little bit of HTML code redundancy. 4. Minimizing the client and server interaction, reduce consumption of server resources and reduce network transmission. 5. A truly multi-user system can be set up for each user can manage the file type, directory, Upload a sing
Platform: | Size: 336896 | Author: 李工 | Hits:

[Internet-Networkreadygonews

Description: 1.支持中文验证码,让网站更加安全 2.采用ASP.NET 2.0技术制作 3.三层架构设计,层次分明,功能可拓展性强。 4.优化的缓存设计,执行速度是ASP类网站的3~4倍。 5.安全性更高,能够有效防范WEB攻击。 6.面向搜索引擎设计——采用URL重写技术,增加搜索引擎收录机会。 7.前后台代码分离,使前台界面修改更加容易。 8.可选风格及模板,可对不同分类和专题使用不同模板和风格显示充分满足客户要求。 9.功能强大的网页编辑器,方便进行图文混排。 0.新闻无限分类,并可添加专题,可对不同分类和专题用不同风格显示 11.动态生成HTML页面,减少服务器资源耗费。 12.增强的文件管理功能。 更新 1.最新添加动态模板加载功能,用户可以自己定义模板。 2.增加Url重写页面扩展名选择功能。 3.增强文章专题功能。 4.增加文件编辑功能。 修正: 1.修正无法删除上传文件的错误 2.修正了数据库的一处错误-1. Chinese support certification yards, two sites more secure. ASP.NET 2.0 technology used to produce 3. The three-tier design, structured, functions will be able to develop strong. 4. Optimization of cache design, implementation speed ASP website of 3 to 4 times. 5. Higher security to effectively guard against Web attacks. 6. Design-oriented search engines-- using URL rewriting technology, increase search engine included opportunities. 7. Taiwan code before and after separation, so that future changes easier interface. 8. Optional styles and templates, can be of different classification and the use of different thematic templates and style show fully meet customer requirements. 9. The powerful web editor, facilitate photo-text. 0. News unlimited, which could add topics to be different cl
Platform: | Size: 772096 | Author: | Hits:

[Other盲源分离

Description: 常用的盲分离算法有二阶统计量方法、高阶累积量方法、信息最大化( Infomax )以及独 立成分分析( ICA )等。这些方法取得最佳性能的条件总是与源信号的概率密度函数假设有关, 一旦假设的概率密度与实际信号的密度函数相差甚远,分离性能将大大降低。本文提出采用 核函数密度估计的方法进行任意信号源的盲分离,并通过典型算例与几种盲分离算法进行了 性能比较,验证了方法的可行性。(The commonly used blind separation algorithms include two order statistics, higher order cumulants, and maximization of information Infomax) and independent component analysis (ICA). The conditions for obtaining the best performance of these methods are always related to the hypothesis of the probability density function of the source signal. The separation performance will be greatly reduced when the assumed probability density is very different from the density function of the actual signal. In this paper, a method of kernel function density estimation for blind separation of arbitrary signal sources is proposed. The performance of several blind separation algorithms is compared with some typical examples, and the feasibility of the method is verified.)
Platform: | Size: 1504256 | Author: double扁 | Hits:

[Windows Develop文件操作(合并,分离等)

Description: 本程序主要实现了批量复制、剪切文件及文件夹、批量重命名文件、批量删除文件及文件夹、搜索文件及文件夹、批量压缩及解压文件、分割及合并文件。(The main procedures of the bulk copy, cut files and folders, batch rename files, delete files and folders, search for files and folders, batch file compression and decompression, split and merge files.)
Platform: | Size: 785408 | Author: kewang | Hits:

[Other新建文件夹

Description: 节分分离PID与变速积分PID控制的源代码分享 给有需要的朋友(Node separation PID and variable speed integral PID control source code, to share in need of friends)
Platform: | Size: 1024 | Author: 不懂的不懂 | Hits:

[matlab卷积盲源分离(2 source 基于能量相关排序)

Description: 直接运行Demo文件即可,本算法案例是两源信号卷积混合,基于同一信号相邻频点能量相关的方法对频域盲源分离信号进行排序(The demo file can be run directly. The case of this algorithm is the convolution mixing of two source signals. The Blind Source Separation (BSS) signals in frequency domain are sorted based on the energy correlation method of the adjacent frequency points of the same signal)
Platform: | Size: 10240 | Author: 高大帅V5 | Hits:
« 12 3 4 5 6 7 8 9 10 ... 20 »

CodeBus www.codebus.net