Класс 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 со значением String 'neat' и ключ String 'foo' со значением String '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 — та, которая чаще всего встречалась при разборе потока.
Краткое описание полей
Поля, объявленные в интерфейсе 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
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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
Подробное описание конструкторов
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/text/html/parser/DocumentParser.html