Класс DocumentParser
- Все реализуемые интерфейсы:
DTDConstants
public class DocumentParser extends Parser
Для всех допустимых тегов, а также для тегов, которые подразумеваются, но не указаны явно, будет вызван соответствующий метод обратного вызова. Например, строка html (<p>blah) содержит только определённый тег p. Обратный вызов получит следующие вызовы методов:
- handleStartTag(html, ...)
- handleStartTag(head, ...)
- handleEndTag(head)
- handleStartTag(body, ...)
- handleStartTag(p, ...)
- handleText(...)
- handleEndTag(p)
- handleEndTag(body)
- handleEndTag(html)
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. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
handleEmptyTag |
Обрабатывает пустой тег. |
protected void |
handleEndTag |
Обрабатывает конечный тег. |
protected void |
handleStartTag |
Обрабатывает начальный тег. |
protected void |
handleText |
Обрабатывает текст. |
void |
parse |
Разбирает поток 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 |
Обрабатывает конечный тег. |
protected void |
error |
Вызывает обработчик ошибок, передавая ему 1-й, 2-й и 3-й аргументы сообщения об ошибке "?". |
protected void |
error |
Вызывает обработчик ошибок, передавая ему 2-й и 3-й аргументы сообщения об ошибке "?". |
protected void |
error |
Вызывает обработчик ошибок, передавая ему 3-й аргумент сообщения об ошибке "?". |
protected void |
error |
Вызывает обработчик ошибок. |
protected void |
flushAttributes() |
Удаляет текущие атрибуты. |
protected SimpleAttributeSet |
getAttributes() |
Возвращает атрибуты текущего тега. |
protected int |
getCurrentLine() |
Возвращает номер строки, которая разбирается в данный момент. |
protected int |
getCurrentPos() |
Возвращает текущую позицию. |
protected void |
handleComment |
Вызывается при обнаружении HTML-комментария. |
protected void |
handleEOFInComment() |
Вызывается, если содержимое заканчивается без закрывающего HTML-комментария. |
protected void |
handleError |
Произошла ошибка. |
protected void |
handleTitle |
Вызывается при обнаружении HTML-тега title. |
protected TagElement |
makeTag |
Создаёт TagElement. |
protected TagElement |
makeTag |
Создаёт TagElement. |
protected void |
markFirstTime |
Отмечает первое появление тега в документе |
void |
parse |
Разбирает поток HTML с использованием DTD. |
String |
parseDTDMarkup() |
Разбирает объявление разметки декларации типа документа. |
protected boolean |
parseMarkupDeclarations |
Разбирает объявления разметки. |
protected void |
startTag |
Обрабатывает начальный тег. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Определяет, равен ли другой объект этому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
DocumentParser
public DocumentParser(DTD dtd)
dtd.- Параметры:
-
dtd— DTD.
Подробное описание методов
parse
public void parse(Reader in, HTMLEditorKit.ParserCallback callback, boolean ignoreCharSet) throws IOException
- Параметры:
-
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— текст раздела
© 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.