Package Torello.HTML.NodeSearch
Class TagNodePeekInclusive
- java.lang.Object
-
- Torello.HTML.NodeSearch.TagNodePeekInclusive
-
public class TagNodePeekInclusive extends java.lang.Object
TagNodePeekInclusive 🠞
TagNode:
This implies that only HTMLTagaNode's
will be used for searching. The fieldTagNode.tok
field is used as a search criteria. Thispublic, final String
field contains the name of the HTML Element - for instance,'div', 'p', 'span', 'img'
, etc...
InnerTag's - (a.k.a. 'attributes') - are not part of the search.
Peek:
This implies that BOTH theVector
-index / indices where a match occurred, AND the theHTMLNode
at that index are SIMULTANEOUSLY returned by these methods - using the data-type classesNodeIndex
andSubSection
.
Inclusive:
The word "Inclusive" is used to indicate that allHTMLNode's
between an opening and closing HTML-tag are requested. The concept is extremely similar to the Java-Script feature / term'.innerHTML'
, although in this (JavaHTML) JAR Library, noDOM-Trees
are ever constructed. This method will PEEK for all nodes between a matching, opening,TagNode
element, and its corresponding-closingTagNode
.
Searches forTagNode
matches, using exactly the same criteria offered by classTagNodePeek
, but also retrieves the corresponding Closing-Tag from theVector
, and returns them, all nodes & between them, and their correspondingVector
-index locations as aSubSection
.Methods Available
Method Explanation first (...) This will retrieve the first SubSection
that meet the specified criteria. The sub-list is copied out of the passed vectorized-html web-page'html'
. Since this is a'Peek'
operation, it is important to note thatclass SubSection
has fields for both theVector<HTMLNode>
sub-list of nodes, and a field forclass DotPair
which are integer index-pointers into the original web-pageVector
.nth (...) This will retrieve the nth SubSection
that meet the specified criteria. The sub-list is copied out of the passed vectorized-html web-page'html'
. Since this is a'Peek'
operation, it is important to note thatclass SubSection
has fields for both theVector<HTMLNode>
sub-list of nodes, and a field forclass DotPair
which are integer index-pointers into the original web-pageVector
.last (...) This will retrieve the last SubSection
that meet the specified criteria. The sub-list is copied out of the passed vectorized-html web-page'html'
. Since this is a'Peek'
operation, it is important to note thatclass SubSection
has fields for both theVector<HTMLNode>
sub-list of nodes, and a field forclass DotPair
which are integer index-pointers into the original web-pageVector
.nthFromEnd (...) This will retrieve the nthFromEnd SubSection
that meet the specified criteria. The sub-list is copied out of the passed vectorized-html web-page'html'
. Since this is a'Peek'
operation, it is important to note thatclass SubSection
has fields for both theVector<HTMLNode>
sub-list of nodes, and a field forclass DotPair
which are integer index-pointers into the original web-pageVector
.all (...) Retrieves every sub-list or sub-page, returned as Vector<SubSection>
, copied out of the passed-parameter html-page or sub-page'html'
for eachTagNode
, and it's closing-tag pair, that meet the specified criteria.allExcept (...) Retrieves every sub-list or sub-page, returned as Vector<SubSection>
, copied out of the passed-parameter html-page or sub-page'html'
for eachTagNode
, and it's closing-tag pair, that that do not meet the specified criteria.Method Parameters
Parameter Explanation Vector<? extends HTMLNode> html
This represents any vectorized HTML page, sub-page, or list of partial-elements. int nth
This represents the 'nth'
match of a comparisonfor-loop
. When the method-signature used includes the parameter'nth'
, the firstn-1
matches that are found - will be skipped, and the'nth'
match is, instead, returned.
EXCEPTIONS: AnNException
shall throw if the value of parameter'nth'
is zero, negative, or larger than the size of the input html-Vector
.int sPos, int ePos
When these parameters are present, only HTMLNode's
that are found between the specifiedVector
indices will be considered for matching with the search criteria.
NOTE: In every situation where the parametersint sPos, int ePos
are used, parameter'ePos'
will accept a negative value, but parameter'sPos'
will not. When'ePos'
is passed a negative-value, the internalLV
('Loop Variable Counter') will have itspublic final int end;
field set to the length of the vectorized-html page that was passed. (html.size()
of parameterVector<HTMLNode> html
).
EXCEPTIONS: AnIndexOutOfBoundsException
will be thrown if:- If
sPos
is negative, or ifsPos
is greater-than or equal-to the size of the inputVector
- If
ePos
is zero, or greater than the size of the inputVector
. - If
sPos
is a larger integer thanePos
TC tagCriteria
The three values of enumeration TC
are:TC.OpeningTags, TC.ClosingTags
andTC.Both
. These values specify a search-criteria result set for an HTMLTagNode
. There are two types of HTML Elements:- "opening versions" of the HTML-tag such as:
<A HREF="...">
- "closing versions" of the element such as:
</A>
.
NOTE: If parameter'tagCriteria'
is passed a value ofTC.Both
, then (and this is hopefully obvious), that both 'opening' and 'closing' versions of the tag will be considered to meet / match the search criteria.String... htmlTags
When this parameter is present, only HTMLNode's
which are both instances ofclass TagNode
*and* whoseTagNode.tok
fieldString
-value matches (is equal to) at least one of the elements in thisVarArgs String
parameter-set will be considered for a match.
COMMON EXAMPLES: Some common examples of valid htmlTags are:a, div, img, table, tr, meta
as well as all other valid HTML element-tokens.
NOTE: This comparison is performed using a case-insensitive compare-method
EXCEPTIONS: If even one of the elements in this parameter-set is an invalid HTML token, anHTMLTokException
will be thrown.Return Values:
SubSection
This is a sub-set or sub-list that matches the search-criteria from the html vectorized-page parameter'html'
- A return value of
null
implies no matching sub-lists or sub-pages were found. - Vector<SubSection> This would be a "list of sub-lists" or an "array of sub-arrays" which are used when multiple results (multiple sub-lists) are needed to be returned to the calling procedure.
- A zero-length
Vector<SubSection>
vector means no matches were found on the page or sub-page. Zero-length vectors are returned from any method where the possibility existed for multiple-matches being provided as a result-set.
Hi-Lited Source-Code:This File's Source Code:
- View Here: Torello/HTML/NodeSearch/TagNodePeekInclusive.java
- Open New Browser-Tab: Torello/HTML/NodeSearch/TagNodePeekInclusive.java
File Size: 4,182 Bytes Line Count: 60 '\n' Characters Found
Actual Search Loop Class:
- View Here: SearchLoops/TagNodesInclusive/TNPeekIncl.java
- Open New Browser-Tab: SearchLoops/TagNodesInclusive/TNPeekIncl.java
File Size: 2,689 Bytes Line Count: 95 '\n' Characters Found
Argument Checker Class:
- View Here: ARGCHECK.java
- Open New Browser-Tab: ARGCHECK.java
File Size: 17,862 Bytes Line Count: 425 '\n' Characters Found
Stateless Class:This class neither contains any program-state, nor can it be instantiated. The@StaticFunctional
Annotation may also be called 'The Spaghetti Report'.Static-Functional
classes are, essentially, C-Styled Files, without any constructors or non-static member fields. It is a concept very similar to the Java-Bean's@Stateless
Annotation.
- 1 Constructor(s), 1 declared private, zero-argument constructor
- 12 Method(s), 12 declared static
- 0 Field(s)
-
-
Method Summary
All Matches Modifier and Type Method static Vector<SubSection>
all(Vector<? extends HTMLNode> html, String... htmlTags)
All Matches, Range Limited Modifier and Type Method static Vector<SubSection>
all(Vector<? extends HTMLNode> html, int sPos, int ePos, String... htmlTags)
All Non-Matches Modifier and Type Method static Vector<SubSection>
allExcept(Vector<? extends HTMLNode> html, String... htmlTags)
All Non-Matches, Range Limited Modifier and Type Method static Vector<SubSection>
allExcept(Vector<? extends HTMLNode> html, int sPos, int ePos, String... htmlTags)
First Match Modifier and Type Method static SubSection
first(Vector<? extends HTMLNode> html, String... htmlTags)
First Match, Range Limited Modifier and Type Method static SubSection
first(Vector<? extends HTMLNode> html, int sPos, int ePos, String... htmlTags)
Last Match Modifier and Type Method static SubSection
last(Vector<? extends HTMLNode> html, String... htmlTags)
Last Match, Range Limited Modifier and Type Method static SubSection
last(Vector<? extends HTMLNode> html, int sPos, int ePos, String... htmlTags)
Nth Match Modifier and Type Method static SubSection
nth(Vector<? extends HTMLNode> html, int nth, String... htmlTags)
Nth Match, Range Limited Modifier and Type Method static SubSection
nth(Vector<? extends HTMLNode> html, int nth, int sPos, int ePos, String... htmlTags)
Nth Match From End Modifier and Type Method static SubSection
nthFromEnd(Vector<? extends HTMLNode> html, int nth, String... htmlTags)
Nth Match From End, Range Limited Modifier and Type Method static SubSection
nthFromEnd(Vector<? extends HTMLNode> html, int nth, int sPos, int ePos, String... htmlTags)
-