# Class HTMLParser

java.lang.Object
org.apache.jmeter.protocol.http.parser.HTMLParser

Direct Known Subclasses:
  `JsoupBasedHtmlParser`

public abstract class HTMLParser extends Object
HtmlParsers can parse HTML content to obtain URLs.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final String`
`ATT_BACKGROUND`
`protected static final String`
`ATT_CODE`
`protected static final String`
`ATT_CODEBASE`
`protected static final String`
`ATT_DATA`
`protected static final String`
`ATT_HREF`
`protected static final String`
`ATT_IS_IMAGE`
`protected static final String`
`ATT_REL`
`protected static final String`
`ATT_SRC`
`protected static final String`
`ATT_STYLE`
`protected static final String`
`ATT_TYPE`
`static final String`
`DEFAULT_PARSER`
`protected static final String`
`IE_UA`
`protected static final Pattern`
`IE_UA_PATTERN`
`static final String`
`PARSER_CLASSNAME`
`protected static final String`
`STYLESHEET`
`protected static final String`
`TAG_APPLET`
`protected static final String`
`TAG_BASE`
`protected static final String`
`TAG_BGSOUND`
`protected static final String`
`TAG_BODY`
`protected static final String`
`TAG_EMBED`
`protected static final String`
`TAG_FRAME`
`protected static final String`
`TAG_IFRAME`
`protected static final String`
`TAG_IMAGE`
`protected static final String`
`TAG_INPUT`
`protected static final String`
`TAG_LINK`
`protected static final String`
`TAG_OBJECT`
`protected static final String`
`TAG_SCRIPT`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`HTMLParser()`
Protected constructor to prevent instantiation except from within subclasses.

## Method Summary

Modifier and Type
Method
Description
`protected Float`
`extractIEVersion(String userAgent)`
`Iterator<URL>`
`getEmbeddedResourceURLs(String userAgent, byte[] html, URL baseUrl, String encoding)`
Get the URLs for all the resources that a browser would automatically download following the download of the HTML content, that is: images, stylesheets, javascript files, applets, etc...
`Iterator<URL>`
`getEmbeddedResourceURLs(String userAgent, byte[] html, URL baseUrl, Collection<URLString> coll, String encoding)`
Get the URLs for all the resources that a browser would automatically download following the download of the HTML content, that is: images, stylesheets, javascript files, applets, etc...
`abstract Iterator<URL>`
`getEmbeddedResourceURLs(String userAgent, byte[] html, URL baseUrl, URLCollection coll, String encoding)`
Get the URLs for all the resources that a browser would automatically download following the download of the HTML content, that is: images, stylesheets, javascript files, applets, etc...
`static final HTMLParser`
`getParser()`
`static final HTMLParser`
`getParser(String htmlParserClassName)`
`protected final boolean`
`isEnableConditionalComments(Float ieVersion)`
`protected boolean`
`isReusable()`
Parsers should over-ride this method if the parser class is re-usable, in which case the class will be cached for the next getParser() call.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### ATT_BACKGROUND

protected static final String ATT_BACKGROUND

See Also:
  - Constant Field Values

### ATT_CODE

protected static final String ATT_CODE

See Also:
  - Constant Field Values

### ATT_CODEBASE

protected static final String ATT_CODEBASE

See Also:
  - Constant Field Values

### ATT_DATA

protected static final String ATT_DATA

See Also:
  - Constant Field Values

### ATT_HREF

protected static final String ATT_HREF

See Also:
  - Constant Field Values

### ATT_REL

protected static final String ATT_REL

See Also:
  - Constant Field Values

### ATT_SRC

protected static final String ATT_SRC

See Also:
  - Constant Field Values

### ATT_STYLE

protected static final String ATT_STYLE

See Also:
  - Constant Field Values

### ATT_TYPE

protected static final String ATT_TYPE

See Also:
  - Constant Field Values

### ATT_IS_IMAGE

protected static final String ATT_IS_IMAGE

See Also:
  - Constant Field Values

### TAG_APPLET

protected static final String TAG_APPLET

See Also:
  - Constant Field Values

### TAG_BASE

protected static final String TAG_BASE

See Also:
  - Constant Field Values

### TAG_BGSOUND

protected static final String TAG_BGSOUND

See Also:
  - Constant Field Values

### TAG_BODY

protected static final String TAG_BODY

See Also:
  - Constant Field Values

### TAG_EMBED

protected static final String TAG_EMBED

See Also:
  - Constant Field Values

### TAG_FRAME

protected static final String TAG_FRAME

See Also:
  - Constant Field Values

### TAG_IFRAME

protected static final String TAG_IFRAME

See Also:
  - Constant Field Values

### TAG_IMAGE

protected static final String TAG_IMAGE

See Also:
  - Constant Field Values

### TAG_INPUT

protected static final String TAG_INPUT

See Also:
  - Constant Field Values

### TAG_LINK

protected static final String TAG_LINK

See Also:
  - Constant Field Values

### TAG_OBJECT

protected static final String TAG_OBJECT

See Also:
  - Constant Field Values

### TAG_SCRIPT

protected static final String TAG_SCRIPT

See Also:
  - Constant Field Values

### STYLESHEET

protected static final String STYLESHEET

See Also:
  - Constant Field Values

### IE_UA

protected static final String IE_UA

See Also:
  - Constant Field Values

### IE_UA_PATTERN

protected static final Pattern IE_UA_PATTERN

### PARSER_CLASSNAME

public static final String PARSER_CLASSNAME

See Also:
  - Constant Field Values

### DEFAULT_PARSER

public static final String DEFAULT_PARSER

See Also:
  - Constant Field Values

## Constructor Details

### HTMLParser

protected HTMLParser()
Protected constructor to prevent instantiation except from within subclasses.

## Method Details

### getParser

public static final HTMLParser getParser()

### getParser

public static final HTMLParser getParser(String htmlParserClassName)

### getEmbeddedResourceURLs

public Iterator<URL> getEmbeddedResourceURLs(String userAgent, byte[] html, URL baseUrl, String encoding) throws HTMLParseException
Get the URLs for all the resources that a browser would automatically download following the download of the HTML content, that is: images, stylesheets, javascript files, applets, etc...

URLs should not appear twice in the returned iterator.

Malformed URLs can be reported to the caller by having the Iterator return the corresponding RL String. Overall problems parsing the html should be reported by throwing an HTMLParseException.

Parameters:
  `userAgent` - User Agent
  `html` - HTML code
  `baseUrl` - Base URL from which the HTML code was obtained
  `encoding` - Charset
Returns:
  an Iterator for the resource URLs
Throws:
  `HTMLParseException` - when parsing the `html` fails

### getEmbeddedResourceURLs

public abstract Iterator<URL> getEmbeddedResourceURLs(String userAgent, byte[] html, URL baseUrl, URLCollection coll, String encoding) throws HTMLParseException
Get the URLs for all the resources that a browser would automatically download following the download of the HTML content, that is: images, stylesheets, javascript files, applets, etc...

All URLs should be added to the Collection.

Malformed URLs can be reported to the caller by having the Iterator return the corresponding RL String. Overall problems parsing the html should be reported by throwing an HTMLParseException.

N.B. The Iterator returns URLs, but the Collection will contain objects of class URLString.

Parameters:
  `userAgent` - User Agent
  `html` - HTML code
  `baseUrl` - Base URL from which the HTML code was obtained
  `coll` - URLCollection
  `encoding` - Charset
Returns:
  an Iterator for the resource URLs
Throws:
  `HTMLParseException` - when parsing the `html` fails

### getEmbeddedResourceURLs

public Iterator<URL> getEmbeddedResourceURLs(String userAgent, byte[] html, URL baseUrl, Collection<URLString> coll, String encoding) throws HTMLParseException
Get the URLs for all the resources that a browser would automatically download following the download of the HTML content, that is: images, stylesheets, javascript files, applets, etc...

N.B. The Iterator returns URLs, but the Collection will contain objects of class URLString.

Parameters:
  `userAgent` - User Agent
  `html` - HTML code
  `baseUrl` - Base URL from which the HTML code was obtained
  `coll` - Collection - will contain URLString objects, not URLs
  `encoding` - Charset
Returns:
  an Iterator for the resource URLs
Throws:
  `HTMLParseException` - when parsing the `html` fails

### isReusable

protected boolean isReusable()
Parsers should over-ride this method if the parser class is re-usable, in which case the class will be cached for the next getParser() call.

Returns:
  true if the Parser is reusable

### isEnableConditionalComments

protected final boolean isEnableConditionalComments(Float ieVersion)

Parameters:
  `ieVersion` - Float IE version
Returns:
  true if IE version < IE v10

### extractIEVersion

protected Float extractIEVersion(String userAgent)

Parameters:
  `userAgent` - User Agent
Returns:
  version null if not IE or the version after MSIE