Spec-Zone.ru › OpenJDK 27

Класс DocumentParser

java.lang.Object
javax.swing.text.html.parser.Parser
javax.swing.text.html.parser.DocumentParser
Все реализуемые интерфейсы:
DTDConstants
public class DocumentParser extends Parser
Парсер HTML-документов (фактически можно указать DTD, но в Swing этот класс следует использовать только с DTD html). Считывает HTML из InputStream и вызывает соответствующие методы класса ParserCallback. Это парсер по умолчанию, используемый HTMLEditorKit для разбора URL-адресов HTML.

Для всех допустимых тегов, а также для тегов, которые подразумеваются, но не указаны явно, будет вызван соответствующий метод обратного вызова. Например, строка html (<p>blah) содержит только определённый тег p. Обратный вызов получит следующие вызовы методов:

  1. handleStartTag(html, ...)
  2. handleStartTag(head, ...)
  3. handleEndTag(head)
  4. handleStartTag(body, ...)
  5. handleStartTag(p, ...)
  6. handleText(...)
  7. handleEndTag(p)
  8. handleEndTag(body)
  9. handleEndTag(html)
Элементы, выделенные курсивом, подразумеваются: хотя они явно не указаны, для корректного html они должны присутствовать (head не обязателен, но всё равно создаётся). Для подразумеваемых тегов аргумент AttributeSet будет содержать значение Boolean.TRUE для ключа HTMLEditorKit.ParserCallback.IMPLIED.

HTML.Attributes определяет типобезопасное перечисление атрибутов html. Если ключ атрибута тега определён в HTML.Attribute, в качестве ключа будет использоваться HTML.Attribute; в противном случае будет использоваться String. Например, у <p foo=bar class=neat> есть два атрибута. foo не определён в HTML.Attribute, тогда как class определён, поэтому AttributeSet будет содержать два значения: HTML.Attribute.CLASS со строковым значением 'neat' и строковый ключ 'foo' со строковым значением 'bar'.

Аргумент position указывает начало тега, комментария или текста. Как и в массивах, позиция первого символа в потоке равна 0. Для подразумеваемых тегов позиция указывает на расположение следующего обнаруженного тега. В первом примере подразумеваемые начальные теги body и html будут иметь ту же позицию, что и тег p, а подразумеваемые конечные теги p, html и body будут иметь одну и ту же позицию.

Поскольку html пропускает пробельные символы, позиция текста будет указывать на первый допустимый символ. Например, в строке '\n\n\nblah' текст 'blah' будет иметь позицию 3, так как символы новой строки пропускаются.

Для атрибутов без значения, например в строке html <foo blah> атрибут blah не имеет значения. Для значения в AttributeSet возможны два варианта:

  • Если DTD не содержит определения элемента или определение не содержит явного значения, значением в AttributeSet будет HTML.NULL_ATTRIBUTE_VALUE.
  • Если DTD содержит явное значение, как в <!ATTLIST OPTION selected (selected) #IMPLIED>, будет использоваться это значение из dtd (в данном случае selected).

После разбора потока обратному вызову передаётся наиболее вероятная строка конца строки. Строка конца строки будет одной из следующих: \n, \r или \r\n — в зависимости от того, какая из них чаще встречается при разборе потока.

Краткое описание полей

Поля, объявленные в классе Parser

dtd, strict
Модификатор и тип Поле Описание
protected DTD dtd
DTD.
protected boolean strict
Этот флаг определяет, будет ли Parser строго следовать требованиям совместимости с SGML.

Поля, объявленные в интерфейсе DTDConstants

ANY, CDATA, CONREF, CURRENT, DEFAULT, EMPTY, ENDTAG, ENTITIES, ENTITY, FIXED, GENERAL, ID, IDREF, IDREFS, IMPLIED, MD, MODEL, MS, NAME, NAMES, NMTOKEN, NMTOKENS, NOTATION, NUMBER, NUMBERS, NUTOKEN, NUTOKENS, PARAMETER, PI, PUBLIC, RCDATA, REQUIRED, SDATA, STARTTAG, SYSTEM
Модификатор и тип Поле Описание
static final int ANY
Константа DTD соответствует ANY
static final int CDATA
Константа DTD соответствует CDATA
static final int CONREF
Константа DTD соответствует CONREF
static final int CURRENT
Константа DTD соответствует CURRENT
static final int DEFAULT
Константа DTD соответствует DEFAULT
static final int EMPTY
Константа DTD соответствует EMPTY
static final int ENDTAG
Константа DTD соответствует ENDTAG
static final int ENTITIES
Константа DTD соответствует ENTITIES
static final int ENTITY
Константа DTD соответствует ENTITY
static final int FIXED
Константа DTD соответствует FIXED
static final int GENERAL
Константа DTD соответствует GENERAL
static final int ID
Константа DTD соответствует ID
static final int IDREF
Константа DTD соответствует IDREF
static final int IDREFS
Константа DTD соответствует IDREFS
static final int IMPLIED
Константа DTD соответствует IMPLIED
static final int MD
Константа DTD соответствует MD
static final int MODEL
Константа DTD соответствует MODEL
static final int MS
Константа DTD соответствует MS
static final int NAME
Константа DTD соответствует NAME
static final int NAMES
Константа DTD соответствует NAMES
static final int NMTOKEN
Константа DTD соответствует NMTOKEN
static final int NMTOKENS
Константа DTD соответствует NMTOKENS
static final int NOTATION
Константа DTD соответствует NOTATION
static final int NUMBER
Константа DTD соответствует NUMBER
static final int NUMBERS
Константа DTD соответствует NUMBERS
static final int NUTOKEN
Константа DTD соответствует NUTOKEN
static final int NUTOKENS
Константа DTD соответствует NUTOKENS
static final int PARAMETER
Константа DTD соответствует PARAMETER
static final int PI
Константа DTD соответствует PI
static final int PUBLIC
Константа DTD соответствует PUBLIC
static final int RCDATA
Константа DTD соответствует RCDATA
static final int REQUIRED
Константа DTD соответствует REQUIRED
static final int SDATA
Константа DTD соответствует SDATA
static final int STARTTAG
Константа DTD соответствует STARTTAG
static final int SYSTEM
Константа DTD соответствует SYSTEM

Краткое описание конструкторов

Конструктор Описание
DocumentParser(DTD dtd)
Создаёт парсер документов с указанным dtd.

Краткое описание методов

Модификатор и тип Метод Описание
protected void handleEmptyTag(TagElement tag)
Обрабатывает пустой тег.
protected void handleEndTag(TagElement tag)
Обрабатывает конечный тег.
protected void handleStartTag(TagElement tag)
Обрабатывает начальный тег.
protected void handleText(char[] data)
Обрабатывает текст.
void parse(Reader in, HTMLEditorKit.ParserCallback callback, boolean ignoreCharSet)
Разбирает поток HTML с использованием DTD.

Методы, объявленные в классе Parser

endTag, error, error, error, error, flushAttributes, getAttributes, getCurrentLine, getCurrentPos, handleComment, handleEOFInComment, handleError, handleTitle, makeTag, makeTag, markFirstTime, parse, parseDTDMarkup, parseMarkupDeclarations, startTag
Модификатор и тип Метод Описание
protected void endTag(boolean omitted)
Обрабатывает конечный тег.
protected void error(String err)
Вызывает обработчик ошибок, передавая ему 1-й, 2-й и 3-й аргументы сообщения об ошибке "?".
protected void error(String err, String arg1)
Вызывает обработчик ошибок, передавая ему 2-й и 3-й аргументы сообщения об ошибке "?".
protected void error(String err, String arg1, String arg2)
Вызывает обработчик ошибок, передавая ему 3-й аргумент сообщения об ошибке "?".
protected void error(String err, String arg1, String arg2, String arg3)
Вызывает обработчик ошибок.
protected void flushAttributes()
Удаляет текущие атрибуты.
protected SimpleAttributeSet getAttributes()
Возвращает атрибуты текущего тега.
protected int getCurrentLine()
Возвращает номер строки, которая разбирается в данный момент.
protected int getCurrentPos()
Возвращает текущую позицию.
protected void handleComment(char[] text)
Вызывается при обнаружении HTML-комментария.
protected void handleEOFInComment()
Вызывается, если содержимое заканчивается без закрывающего HTML-комментария.
protected void handleError(int ln, String msg)
Произошла ошибка.
protected void handleTitle(char[] text)
Вызывается при обнаружении HTML-тега title.
protected TagElement makeTag(Element elem)
Создаёт TagElement.
protected TagElement makeTag(Element elem, boolean fictional)
Создаёт TagElement.
protected void markFirstTime(Element elem)
Отмечает первое появление тега в документе
void parse(Reader in)
Разбирает поток HTML с использованием DTD.
String parseDTDMarkup()
Разбирает объявление разметки декларации типа документа.
protected boolean parseMarkupDeclarations(StringBuffer strBuff)
Разбирает объявления разметки.
protected void startTag(TagElement tag)
Обрабатывает начальный тег.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Определяет, равен ли другой объект этому объекту.
protected void finalize()
Устарело и будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

DocumentParser

public DocumentParser(DTD dtd)
Создаёт парсер документов с указанным dtd.
Параметры:
dtd — DTD.

Подробное описание методов

parse

public void parse(Reader in, HTMLEditorKit.ParserCallback callback, boolean ignoreCharSet) throws IOException
Разбирает поток HTML с использованием DTD.
Параметры:
in — средство чтения исходных данных
callback — обратный вызов
ignoreCharSet — если true, набор символов игнорируется
Исключения:
IOException — при возникновении ошибки ввода-вывода

handleStartTag

protected void handleStartTag(TagElement tag)
Обрабатывает начальный тег.
Переопределяет:
handleStartTag в классе Parser
Параметры:
tag — обрабатываемый тег

handleEmptyTag

protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException
Обрабатывает пустой тег.
Переопределяет:
handleEmptyTag в классе Parser
Параметры:
tag — обрабатываемый тег
Исключения:
ChangedCharSetException — если набор символов документа был изменён

handleEndTag

protected void handleEndTag(TagElement tag)
Обрабатывает конечный тег.
Переопределяет:
handleEndTag в классе Parser
Параметры:
tag — обрабатываемый тег

handleText

protected void handleText(char[] data)
Обрабатывает текст.
Переопределяет:
handleText в классе Parser
Параметры:
data — текст раздела

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документация для разработчиков доступны в документации Java SE, содержащей более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API