[Htmlparser-cvs] htmlparser/src/org/htmlparser/scanners OptionTagScanner.java,1.15,1.16
Brought to you by:
derrickoswald
|
From: <der...@us...> - 2003-05-10 01:47:16
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners
In directory sc8-pr-cvs1:/tmp/cvs-serv21759/org/htmlparser/scanners
Modified Files:
OptionTagScanner.java
Log Message:
For Dhaval:
I have converted the OptionTag to a composite tag. The problem that is present
with Label tag exists here a well so my guess is that it is with CompositeTag
itself. Once solved, all related problems will also get solved. In any
case I have commented some test conditions in the OptionTagTest class. You can
uncomment it and see it for yourself.
Some SelectTag test cases are also changed as a result.
Index: OptionTagScanner.java
===================================================================
RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/OptionTagScanner.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** OptionTagScanner.java 5 May 2003 03:12:22 -0000 1.15
--- OptionTagScanner.java 10 May 2003 01:47:12 -0000 1.16
***************
*** 29,122 ****
package org.htmlparser.scanners;
- import java.util.Map;
-
- import org.htmlparser.Node;
- import org.htmlparser.NodeReader;
- import org.htmlparser.StringNode;
- import org.htmlparser.tags.EndTag;
import org.htmlparser.tags.OptionTag;
import org.htmlparser.tags.Tag;
import org.htmlparser.tags.data.TagData;
- import org.htmlparser.util.ParserException;
- import org.htmlparser.util.ParserUtils;
! public class OptionTagScanner extends TagScanner
{
! public OptionTagScanner()
! {
! super();
}
! public OptionTagScanner(String filter)
! {
! super(filter);
}
-
- public Tag scan(Tag tag, String pUrl, NodeReader reader, String currLine)
- throws ParserException
- {
- try
- {
- EndTag endTag=null;
- Node node = null;
- Node prevNode = tag;
- boolean endTagFound=false;
- StringBuffer text=new StringBuffer("");
- // Remove all existing scanners, so as to parse only till the end tag
- Map tempScanners = ParserUtils.adjustScanners(reader);
! do
! {
! node = reader.readElement();
! if (node instanceof EndTag)
! {
! endTag = (EndTag)node;
! String endTagString = endTag.getText().toUpperCase();
! if (endTagString.equals("OPTION") || endTagString.equals("SELECT"))
! {
! endTagFound = true;
! if (endTagString.equals("SELECT"))
! {
! node = prevNode;
! }
! }
! }
! else if (node instanceof StringNode)
! {
! text.append(node.toHtml());
! }
! else
! {
! endTagFound = true;
! node = prevNode;
! }
! prevNode = node;
! }
! while (!endTagFound);
! OptionTag lOptionTag =
! new OptionTag(
! new TagData(
! 0, node.elementEnd(), tag.getText(),currLine
! ),
! text.toString()
! );
! ParserUtils.restoreScanners(reader, tempScanners);
! return lOptionTag;
! }
! catch (Exception e)
! {
! throw new ParserException("HTMLOptionTagScanner.scan() : Error while scanning option tags, current line = "+currLine,e);
! }
}
!
!
! /**
! * @see org.htmlparser.scanners.TagScanner#getID()
! */
! public String [] getID() {
! String [] ids = new String[1];
! ids[0] = "OPTION";
! return ids;
}
}
--- 29,58 ----
package org.htmlparser.scanners;
import org.htmlparser.tags.OptionTag;
import org.htmlparser.tags.Tag;
+ import org.htmlparser.tags.data.CompositeTagData;
import org.htmlparser.tags.data.TagData;
! public class OptionTagScanner extends CompositeTagScanner
{
! private static final String MATCH_NAME [] = {"OPTION"};
! private static final String [] ENDERS = { "SELECT" };
!
! public OptionTagScanner() {
! super(MATCH_NAME, ENDERS, false);
}
! public OptionTagScanner(String filter) {
! super(filter, MATCH_NAME, ENDERS, false);
}
! public String [] getID() {
! return MATCH_NAME;
}
! public Tag createTag(
! TagData tagData,
! CompositeTagData compositeTagData) {
! return new OptionTag(tagData,compositeTagData);
}
}
|