[Htmlparser-cvs] htmlparser/src/org/htmlparser/visitors ObjectFindingVisitor.java,1.35,1.36 UrlModif
Brought to you by:
derrickoswald
From: <der...@us...> - 2003-11-04 01:25:07
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/visitors In directory sc8-pr-cvs1:/tmp/cvs-serv25697/visitors Modified Files: ObjectFindingVisitor.java UrlModifyingVisitor.java Log Message: Made visiting order the same order as on the page. The 'shouldRecurseSelf' boolean of NodeVisitor could probably be removed since it doesn't make much sense any more. Fixed StringBean, which was still looking for end tags with names starting with a slash, i.e. "/SCRIPT", silly beany. Added some debugging support to the lexer, you can easily base a breakpoint on line number. Index: ObjectFindingVisitor.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/visitors/ObjectFindingVisitor.java,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** ObjectFindingVisitor.java 26 Oct 2003 19:46:28 -0000 1.35 --- ObjectFindingVisitor.java 4 Nov 2003 01:25:02 -0000 1.36 *************** *** 37,49 **** public class ObjectFindingVisitor extends NodeVisitor { private Class classTypeToFind; - private int count = 0; private NodeList tags; public ObjectFindingVisitor(Class classTypeToFind) { ! this(classTypeToFind,false); } public ObjectFindingVisitor(Class classTypeToFind,boolean recurse) { ! super(recurse); this.classTypeToFind = classTypeToFind; this.tags = new NodeList(); --- 37,48 ---- public class ObjectFindingVisitor extends NodeVisitor { private Class classTypeToFind; private NodeList tags; public ObjectFindingVisitor(Class classTypeToFind) { ! this(classTypeToFind,true); } public ObjectFindingVisitor(Class classTypeToFind,boolean recurse) { ! super(recurse, true); this.classTypeToFind = classTypeToFind; this.tags = new NodeList(); *************** *** 51,62 **** public int getCount() { ! return count; } public void visitTag(Tag tag) { ! if (tag.getClass().getName().equals(classTypeToFind.getName())) { ! count++; tags.add(tag); - } } --- 50,59 ---- public int getCount() { ! return (tags.size ()); } public void visitTag(Tag tag) { ! if (tag.getClass().equals(classTypeToFind)) tags.add(tag); } Index: UrlModifyingVisitor.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/visitors/UrlModifyingVisitor.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** UrlModifyingVisitor.java 1 Nov 2003 21:55:44 -0000 1.37 --- UrlModifyingVisitor.java 4 Nov 2003 01:25:03 -0000 1.38 *************** *** 30,37 **** --- 30,40 ---- package org.htmlparser.visitors; + + import org.htmlparser.Node; import org.htmlparser.Parser; import org.htmlparser.StringNode; import org.htmlparser.scanners.ImageScanner; import org.htmlparser.scanners.LinkScanner; + import org.htmlparser.tags.CompositeTag; import org.htmlparser.tags.ImageTag; import org.htmlparser.tags.LinkTag; *************** *** 65,70 **** public void visitTag(Tag tag) ! { ! if (null == tag.getParent ()) modifiedResult.append(tag.toHtml()); } --- 68,77 ---- public void visitTag(Tag tag) ! { // process only those nodes that won't be processed by an end tag, ! // nodes without parents or parents without an end tag, since ! // the complete processing of all children should happen before ! // we turn this node back into html text ! if (null == tag.getParent () ! && (!(tag instanceof CompositeTag) || null == ((CompositeTag)tag).getEndTag ())) modifiedResult.append(tag.toHtml()); } *************** *** 72,77 **** public void visitEndTag(Tag tag) { ! if (null == tag.getParent ()) modifiedResult.append(tag.toHtml()); } --- 79,89 ---- public void visitEndTag(Tag tag) { ! Node parent; ! ! parent = tag.getParent (); ! if (null == parent) modifiedResult.append(tag.toHtml()); + else + modifiedResult.append(parent.toHtml()); } |