#
最近很少学习,突然对五子棋着迷了。
深入接触五子棋后,才明白其深处!
我决定,每一个月学一个棋局,同时严格控制自己游戏时间。
我想今天应该是我休闲时间结束的日子了,以后的日子应该会充实很多。
高度、角度、态度和宽度。
/**
* @(#)DiGuiTest.java
*
*
* @author
* @version 1.00 2009/6/17
*/
import java.lang.*;
import org.htmlparser.Parser;
import org.htmlparser.Node;
import org.htmlparser.util.NodeList;
import org.htmlparser.nodes.*;
import org.htmlparser.tags.*;
import org.htmlparser.tags.AppletTag;
public class DiGuiTest {
public DiGuiTest() {
}
public static void main(String args[]){
String path = "file:///c:/htmlparsertest.html";
try{
Parser pr = new Parser();
pr.setURL(path);
NodeList nl = pr.parse(null);
DiGuiTest kk = new DiGuiTest();
for(int i=0;i<nl.size();i++){
if(nl.elementAt(i) instanceof TagNode){
System.out.print("TagNode==>");
if(nl.elementAt(i) instanceof LinkTag ){
System.out.print("LinkTag==>");
}
else if(nl.elementAt(i) instanceof ImageTag){
System.out.print("ImageTag==>");
}
else if(nl.elementAt(i) instanceof ScriptTag){
System.out.print("ScriptTag==>");
}
else{
System.out.print("OtherTag-->");
}
}
else if(nl.elementAt(i) instanceof RemarkNode){
System.out.print("RemarkNode==>");
}
else if(nl.elementAt(i) instanceof TextNode){
System.out.print("TextNode==>");
}
kk.PrintNode(nl.elementAt(i),0);
}
}
catch(Exception e){
e.printStackTrace();
}
}
public void PrintNode(Node temp,int cout){
try{
if(temp!=null){
System.out.println("Node :"+temp.getText()+"'s deepth is "+cout);
if(temp.getChildren()!=null){
NodeList nl = temp.getChildren();
for(int i= 0;i<nl.size();i++){
if(nl.elementAt(i) instanceof TagNode){
System.out.print("TagNode==>");
if(nl.elementAt(i) instanceof LinkTag ){
System.out.print("LinkTag==>");
LinkTag lt =(LinkTag)nl.elementAt(i);
System.out.print(" LinkTag:extractLink is:"+lt.extractLink());
System.out.print(" getAccessKey"+lt.getAccessKey());
}
else if(nl.elementAt(i) instanceof ImageTag){
ImageTag it = (ImageTag)nl.elementAt(i);
System.out.print("ImageTag==>");
System.out.print(" getImageURL():"+it.getImageURL());
}
else if(nl.elementAt(i) instanceof ScriptTag){
System.out.print("ScriptTag==>");
}
else{
System.out.print("OtherTag-->");
}
}
else if(nl.elementAt(i) instanceof RemarkNode){
System.out.print("RemarkNode==>");
}
else if(nl.elementAt(i) instanceof TextNode){
System.out.print("TextNode==>");
/* if((TextNode)(nl.elementAt(i)).isWhiteSpace()){
nl.elementAt(i).setText("WhiteSpace");
}
*/
}
if(nl.elementAt(i)!=null){
PrintNode(nl.elementAt(i),cout+1);
}
}
}
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
/**
* @(#)VisitorsTest.java
*
*
* @author
* @version 1.00 2009/6/18
*/
import org.htmlparser.Parser;
import org.htmlparser.Node;
import org.htmlparser.util.NodeList;
import org.htmlparser.nodes.*;
import org.htmlparser.visitors.*;
import org.htmlparser.Tag;
import org.htmlparser.tags.*;
public class VisitorsTest extends NodeVisitor{
public VisitorsTest() {
}
public static void main(String args[]){
try{
String path="file:///c:/htmlparsertest.html";
Parser pr = new Parser(path);
// pr.setURL("http://www.suse.edu.cn");
VisitorsTest vt = new VisitorsTest();
pr.visitAllNodesWith(vt);
}
catch(Exception e){
e.printStackTrace();
}
}
public void visitTag (Tag tag)
{
System.out.print ("\nTagName:" + tag.getTagName () );
if(tag instanceof LinkTag){
LinkTag lt = (LinkTag)tag;
System.out.print(" LinkTag is:"+ lt.extractLink());
}
else if(tag instanceof FormTag){
FormTag ft = (FormTag)tag;
System.out.print(" FormTag is:"+ft.getFormName());
}
else if(tag instanceof ImageTag){
ImageTag it = (ImageTag)tag;
System.out.print(" ImageTag url is:"+it.getImageURL());
}
else {
System.out.print(" OtherTag");
}
}
}
/**
* @(#)NodeTest.java
*
*
* @author
* @version 1.00 2009/6/17
*/
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;
import org.htmlparser.Node;
import org.htmlparser.nodes.*;
public class NodeTest {
public NodeTest() {
}
public static void main(String args[]){
String path = "file:///c:/htmlparsertest.html";
try{
Parser pr = new Parser(path);
NodeList nl = pr.parse(null);//生成结点链
// System.out.println(nl.size());
// TextNode[] nodearray={null,null,null,null,null,null,null,null,null,null,null,null,null,null};
// nl.copyToNodeArray(Node[] array);//copyToNodeArray失败
// Node temp;
String parent,sibling,child;
for(int i=0;i<nl.size();i++){
System.out.println(nl.size());
if(nl.elementAt(i) instanceof TagNode){
System.out.print("TagNode==>");
}
else if(nl.elementAt(i) instanceof RemarkNode){
System.out.print("RemarkNode==>");
}
else if(nl.elementAt(i) instanceof TextNode){
System.out.print("TextNode==>");
}
if(nl.elementAt(i).getParent()==null){
parent="null";
}
else{
parent=nl.elementAt(i).getParent().getText();
}
if(nl.elementAt(i).getNextSibling()==null){
sibling="null";
}
else{
sibling=nl.elementAt(i).getNextSibling().getText();
}
if(nl.elementAt(i).getChildren()==null){
child="null";
}
else{
child=nl.elementAt(i).getFirstChild().getText();
}
System.out.println("nl.elementAt("+i+").getText()="+nl.elementAt(i).getText()+" Parent is :"+parent+",NextSibling is :"+sibling+",First Child is:"+child);
if(nl.elementAt(i).getNextSibling()==null&&nl.elementAt(i).getChildren()!=null){
nl=nl.elementAt(i).getChildren();
i=0;
}
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
学习计划(06.19-06.25)
任务:HtmlParser的lexer,beans,http和filters包
要求:1、认真理解各包内的类, 2、测试各包内的各类, 3、能熟练综合运用上面的包。
分工:每两天解决一个包,最后一天综合运用
学习计划(06.11-06.18)
任务:HtmlParser的包,包括tags,nodes和visitors的掌握
要求:1、认真理解各包内的类, 2、测试各包内的各类, 3、能熟练综合运用上面的包。
分工:每两天解决一个包,最后一天综合运用
时间:每天上午两小时,下午两小时,晚上两小时
坚持坚持~~
步骤:
1、会将整个页面生成Node树(包括树的遍历,树的访问情况)
2、会判断Node的类型(判断各类型的有哪些node)
3、会调用不同类型的Node的成员函数(API)
4、测试Tags里面的各个类的使用
5、测试用Visitors包内的类
结论:
1、·结点是以html为始开始计算,自定义标签的开头与结尾均算一个独立结点.
·html标签前的一个或多个换行算一个独立结点,html标签之后的一个或多个换行算一个独立结点
·html之前或之后的一个或多个字符算各算一个独立结点
·Node树的遍历,编写函数.完成了Node结点的高度求解。并不知道父子关系
·树的生成是按照嵌套来的,类似于树的定义
2、·RearkNode一般时div标签等,TextNode是文本内容,TagNode是除了前两项的所有标签
3、·测试各Tags内的成员函数
4、·找到一个环境,知道什么时候会用Visitors里的包
·再测试各类
for (int i = 0; i < nodes.length; i++) {
Node node = nodes[i];
if (node instanceof TextNode) {
TextNode textnode = (TextNode) node;
line = textnode.getText();
} else if (node instanceof LinkTag) {
LinkTag link = (LinkTag) node;
line = link.getLink();
} else if (node instanceof TitleTag) {
TitleTag titlenode = (TitleTag) node;
line = titlenode.getTitle();
}
if (isTrimEmpty(line))
continue;
System.out.println(line);
}
任务:HtmlParser的包,包括tags,nodes和visitors的掌握
要求:1、认真理解各包内的类, 2、测试各包内的各类, 3、能熟练综合运用上面的包。
分工:每两天解决一个包,最后一天综合运用
时间:每天上午两小时,下午两小时,晚上两小时
坚持坚持
摘要: // HTMLParser Library $Name: v1_6 $ - A java-based parser for HTML
// http://sourceforge.org/projects/htmlparser
// Copyright (C) 2004 Somik Raha
//
// Revision Control Information
//
// $Source...
阅读全文
摘要:
您所查看的帖子来源于考研加油站考研论坛(bbs.kaoyan.com) Fgcmaster:
感觉到数据结构有点难度...原来感觉os也不易的,可考起来还不错,也不是很难,对概念要掌屋好..原来以为c++简单,可考试时,总共四十我二十分没做..郁闷,还花了偶好多时间,搞的后来的数据库都没做好多....感觉时间严重不够用的,这是偶的一点想法...偶专业课也才考88..总分才三百二十...
阅读全文