Package org.apache.jmeter.protocol.http.parser

# Class HTMLParser

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

All Implemented Interfaces:
  `LinkExtractorParser`

Direct Known Subclasses:
  `JsoupBasedHtmlParser`, `LagartoBasedHtmlParser`

public abstract class HTMLParser extends BaseParser
`HTMLParser` subclasses can parse HTML content to obtain URLs.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final String`
  `ATT_ARCHIVE`
  `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`
  `ICON`
  `protected static final String`
  `IE_UA`
  `protected static final Pattern`
  `IE_UA_PATTERN`
  `static final String`
  `PARSER_CLASSNAME`
  `protected static final String`
  `PRELOAD`
  `protected static final String`
  `SHORTCUT_ICON`
  `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...
  `protected static boolean`
  `isEnableConditionalComments(Float ieVersion)`
  `protected static String`
  `normalizeUrlValue(CharSequence url)`
  Normalizes URL as browsers do

  ### Methods inherited from class org.apache.jmeter.protocol.http.parser.BaseParser

  `getParser, isReusable`

  ### Methods inherited from class java.lang.Object

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

- ## Field Details

  - ### ATT_ARCHIVE

    protected static final String ATT_ARCHIVE
    See Also:
      - Constant Field Values

  - ### 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

  - ### SHORTCUT_ICON

    protected static final String SHORTCUT_ICON
    See Also:
      - Constant Field Values

  - ### ICON

    protected static final String ICON
    See Also:
      - Constant Field Values

  - ### PRELOAD

    protected static final String PRELOAD
    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

  - ### 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

  - ### isEnableConditionalComments

    protected static 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

  - ### normalizeUrlValue

    protected static String normalizeUrlValue(CharSequence url)
    Normalizes URL as browsers do
    Parameters:
      `url` - `CharSequence`
    Returns:
      normalized url