亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? htmldocument.java

?? HTML解釋器JAVA源碼
?? JAVA
字號:
/* * HtmlDocument.java -- classes to represent HTML documents as parse trees * Copyright (C) 1999 Quiotix Corporation.   * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2, as  * published by the Free Software Foundation.   * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License (http://www.gnu.org/copyleft/gpl.txt) * for more details. */package com.quiotix.html.parser;import java.util.*;/**  * Represents an HTML document as a sequence of elements.  The defined  * element types are: Tag, EndTag, TagBlock (matched tag..end tag, with the * intervening elements), Comment, Text, Newline, and Annotation.   * * <P> The various element types are defined as nested classes within  * HtmlDocument.  Many have fields defined as public instead of properties * for efficient access.   * * @author Brian Goetz, Quiotix * @see com.quiotix.html.HtmlVisitor */public class HtmlDocument {  ElementSequence elements;  public HtmlDocument(ElementSequence s) { elements = s; }  public void accept(HtmlVisitor v) { v.visit(this); }  // The various elements of the HtmlDocument (Tag, EndTag, etc) are included  // as nested subclasses largely for reasons of namespace control.    // The following subclasses of HtmlElement exist: Tag, EndTag, Text, Comment,  // Newline, Annotation, TagBlock.  Also, the additional classes   // ElementSequence, Attribute, and AttributeList are defined here as well.   // Each subclass of HtmlElement should have a visit() method in the   // HtmlVisitor class.    /** Abstract class for HTML elements.  Enforces support for Visitors.  */  public static abstract class HtmlElement {    public abstract void accept(HtmlVisitor v);  };  /** HTML start tag.  Stores the tag name and a list of tag attributes.  */  public static class Tag extends HtmlElement {    public String tagName;    public AttributeList attributeList;    public boolean emptyTag = false;    public Tag(String t, AttributeList a) { tagName = t; attributeList = a; }    public void setEmpty(boolean b) { emptyTag = b; }    public void accept(HtmlVisitor v) { v.visit(this); }    public int getLength() {      int length = 0;      for (Enumeration ae=attributeList.attributes.elements();           ae.hasMoreElements(); )         length += 1 + ((Attribute) ae.nextElement()).getLength();      return length + tagName.length() + 2 + (emptyTag? 1 : 0);    }    public String toString() {      StringBuffer s = new StringBuffer();      s.append("<");      s.append(tagName);      for (Enumeration ae=attributeList.attributes.elements();           ae.hasMoreElements(); ) {        s.append(" ");        s.append(((Attribute) ae.nextElement()).toString());      }      if (emptyTag) s.append("/");      s.append(">");      return s.toString();    }  }  /** Html end tag.  Stores only the tag name. */  public static class EndTag extends HtmlElement {    public String tagName;    public EndTag(String t) { tagName = t; }    public void accept(HtmlVisitor v) { v.visit(this); }    public int getLength() { return 3 + tagName.length(); }    public String toString() {      return "</" + tagName + ">";     }  }  /** A tag block is a composite structure consisting of a start tag   * a sequence of HTML elements, and a matching end tag.  */  public static class TagBlock extends HtmlElement {    public Tag startTag;    public EndTag endTag;    public ElementSequence body;    public TagBlock(String name, AttributeList aList, ElementSequence b) {      startTag = new Tag(name, aList);      endTag   = new EndTag(name);      body = b;    }    public void accept(HtmlVisitor v) { v.visit(this); }  }  /** HTML comments. */  public static class Comment extends HtmlElement {    public String comment;    public Comment(String c) { comment = c; }    public void accept(HtmlVisitor v) { v.visit(this); }    public int getLength() { return 3 + comment.length(); }    public String toString() { return "<!" + comment + ">"; }  }  /** Plain text */  public static class Text extends HtmlElement {    public String text;    public Text(String t) { text = t; }    public void accept(HtmlVisitor v) { v.visit(this); }    public int getLength() { return text.length(); }    public String toString() { return text; }  }  /** End of line indicator. */  public static class Newline extends HtmlElement {    public static final String NL = System.getProperty("line.separator");    public void accept(HtmlVisitor v) { v.visit(this); }    public int getLength() { return NL.length(); }    public String toString() { return NL; }  }  /** A sequence of HTML elements.  */  public static class ElementSequence {    protected Vector elements;    public ElementSequence(int n) { elements = new Vector(n); }    public ElementSequence()      { elements = new Vector(); }    public void addElement(HtmlElement o) { elements.addElement(o); }    public Enumeration elements() { return elements.elements(); }  }  /** Annotations.  These are not part of the HTML document, but   * provide a way for HTML-processing applications to insert   * annotations into the document.  These annotations can be used by   * other programs or can be brought to the user's attention at a   * later time.  For example, the HtmlCollector might insert an   * annotation to indicate that there is no corresponding start tag   * for an end tag.  */  public static class Annotation extends HtmlElement {    String type, text;    public Annotation(String type, String text) {       this.type = type;       this.text = text;     }    public void accept(HtmlVisitor v) { v.visit(this); }    public int getLength() { return 14 + type.length() + text.length(); }    public String toString() { return "<!--NOTE(" + type + ") " + text + "-->"; }  }  public static class Attribute {    public String name, value;    public boolean hasValue;    public Attribute(String n) { name = n; hasValue = false; }    public Attribute(String n, String v) {       name = n;       value = v;       hasValue = true;     }    public int getLength() {       return (hasValue? name.length() + 1 + value.length() : name.length());     }    public String toString() {      return (hasValue? name+"="+value : name);    }  }    public static class AttributeList {    public Vector attributes;        public AttributeList() {      attributes = new Vector();    }    public void addAttribute(Attribute a) { attributes.addElement(a); }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人丝袜18视频在线观看| 成人美女在线视频| 国产精品美女久久久久久2018 | 欧美日韩和欧美的一区二区| 亚洲成年人影院| 日本一区二区三区电影| 欧美日韩精品一区二区三区蜜桃| 中文字幕一区日韩精品欧美| 日韩一区二区三区免费看| 91偷拍与自偷拍精品| 国产一区二区三区最好精华液| 欧美一区二区在线播放| 99精品视频一区| 精品在线播放免费| 亚洲成av人片www| 亚洲日本成人在线观看| 久久久久久久久久久电影| 日韩一级片在线观看| 色婷婷综合在线| 成人爽a毛片一区二区免费| 久久99热这里只有精品| 五月激情综合网| 亚洲愉拍自拍另类高清精品| 国产精品乱人伦| 欧美经典一区二区| 久久精品视频在线免费观看 | 欧美日韩成人在线一区| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲欧美综合网| 99精品国产视频| 麻豆成人久久精品二区三区小说| 91精品黄色片免费大全| 欧美影片第一页| 欧美主播一区二区三区| 一本到高清视频免费精品| 国产成人精品影院| 国产高清精品在线| 国产精品中文有码| 国产激情视频一区二区三区欧美| 亚洲精品伦理在线| 亚洲欧美日韩成人高清在线一区| 欧美情侣在线播放| 欧美高清一级片在线| 91精品综合久久久久久| 欧美日韩精品一区二区天天拍小说 | 中文字幕一区二区三区四区不卡| 精品视频999| 欧美日韩不卡视频| 555www色欧美视频| 欧美成人乱码一区二区三区| 精品国产一区二区亚洲人成毛片| av在线播放不卡| 色综合久久中文字幕| 一本色道综合亚洲| 欧美视频一区在线| 91精品国产综合久久久久久久| 91视频国产资源| 欧美性一区二区| 欧美精品色综合| 欧美www视频| 国产欧美一区二区三区网站| 国产精品国产三级国产有无不卡| 欧美一区二区三区免费观看视频| 99re热这里只有精品免费视频| 精品亚洲成av人在线观看| 国产一区二区三区四| 成人污污视频在线观看| 欧美中文字幕亚洲一区二区va在线| 成人午夜电影久久影院| 色噜噜夜夜夜综合网| 7777精品伊人久久久大香线蕉完整版 | 日本不卡视频一二三区| 国产在线精品免费av| 成人精品免费看| 色www精品视频在线观看| 91精品国产综合久久久久久漫画 | 亚洲日本丝袜连裤袜办公室| 亚洲成人自拍网| 国产在线精品免费| 91啪九色porn原创视频在线观看| 成人精品视频.| 欧美久久高跟鞋激| 中文字幕av一区 二区| 一区二区三区在线看| 久久av老司机精品网站导航| 99v久久综合狠狠综合久久| 7777精品伊人久久久大香线蕉经典版下载| 色综合天天视频在线观看 | 欧美日本一区二区| 国产日产欧美一区| 天天影视网天天综合色在线播放| 一区二区三区蜜桃网| 国产一区二区免费看| 91福利视频久久久久| 久久蜜桃一区二区| 午夜精品久久久久久久久久| 国产福利一区二区| 欧美日韩国产高清一区二区三区| 欧美日韩三级视频| 中文字幕日韩一区二区| 精品一区二区三区久久久| 91久久精品午夜一区二区| 久久久久国产免费免费 | 亚洲最色的网站| 国产成人免费在线观看| 制服丝袜成人动漫| 亚洲欧洲另类国产综合| 国产精品自在欧美一区| 欧美精品粉嫩高潮一区二区| 亚洲色图一区二区三区| 国产乱码精品一区二区三区五月婷| 国产成人精品三级麻豆| 日韩区在线观看| 亚洲成人动漫在线观看| 99久久久无码国产精品| 国产午夜精品福利| 久久精品999| 911精品国产一区二区在线| 亚洲制服丝袜在线| 99re成人精品视频| 国产精品久久国产精麻豆99网站| 亚洲成人一区二区在线观看| 99r精品视频| 亚洲欧洲精品成人久久奇米网| 亚洲精品免费一二三区| 91一区二区三区在线观看| 久久精品免费在线观看| 国内精品嫩模私拍在线| 精品久久免费看| 久久99久久久久久久久久久| 91精品国产色综合久久ai换脸| 国产精品美日韩| 波多野结衣亚洲一区| 日本一区二区久久| 成人午夜免费av| 国产午夜精品理论片a级大结局| 亚洲成av人片| 欧美精品一级二级| 午夜精品久久久久久久99樱桃| 国产精品白丝av| 久久久www成人免费毛片麻豆 | 成人一区二区三区| 国产精品视频一二| 成人aa视频在线观看| 国产精品乱子久久久久| www.av亚洲| 亚洲久草在线视频| 欧美日韩在线播| 蜜臀久久99精品久久久久宅男 | 26uuu精品一区二区在线观看| 中文字幕一区二区三区色视频| 青青草原综合久久大伊人精品| 成人国产精品视频| 亚洲日本成人在线观看| 在线看国产一区二区| 午夜一区二区三区在线观看| 91精品国产91热久久久做人人| 亚洲免费伊人电影| 欧美日韩国产小视频在线观看| 中文字幕av在线一区二区三区| 日日夜夜精品视频免费| 欧美sm美女调教| 国产成人综合视频| 亚洲日本电影在线| 欧美一区二区三区婷婷月色| 国产一区999| 亚洲精品欧美激情| 日韩午夜中文字幕| 成人综合在线观看| 亚洲福中文字幕伊人影院| 日韩免费高清视频| 成人av在线一区二区| 亚洲一区二区精品久久av| 日韩精品资源二区在线| 成人精品在线视频观看| 天堂蜜桃91精品| 国产女人18毛片水真多成人如厕 | 欧美网站大全在线观看| 青青草国产精品97视觉盛宴| 久久一区二区三区四区| 色哟哟精品一区| 免费人成在线不卡| 国产精品久久久久aaaa樱花| 69堂成人精品免费视频| 成人视屏免费看| 蜜乳av一区二区三区| 最近中文字幕一区二区三区| 51久久夜色精品国产麻豆| 北岛玲一区二区三区四区| 日韩av中文字幕一区二区三区| 日韩一级高清毛片| 91天堂素人约啪| 国产在线一区二区| 亚洲成人第一页| 18欧美乱大交hd1984| 久久久综合精品| 欧美浪妇xxxx高跟鞋交| 91在线云播放| 国产成人亚洲综合a∨婷婷图片| 国产欧美一区二区三区在线看蜜臀|