Класс 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 будет использоваться в качестве ключа, в противном случае будет использоваться строка. Например, <p foo=bar class=neat> имеет два атрибута. foo не определён в HTML.Attribute, а class — есть, поэтому в AttributeSet будет две значения: HTML.Attribute.CLASS со строковым значением 'neat' и строковый ключ 'foo' со строковым значением 'bar'.
Аргумент position укажет начало тега, комментария или текста. Аналогично массивам, первый символ в потоке имеет позицию 0. Для тегов, которые подразумеваются, position укажет местоположение следующего встреченного тега. В первом примере подразумеваемые начальные теги 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 (в данном случае выбранное) будет использовано.
После того как поток был проанализирован, обратная функция получает уведомление о наиболее вероятной строке конца строки. Строка конца строки будет одной из \n, \r или \r\n, какой из них встретился чаще всего при разборе потока.
Краткое описание полей
Поля, объявленные в интерфейсе javax.swing.text.html.parser.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. |
Методы, объявленные в классе javax.swing.text.html.parser.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, 2023, 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/21/docs/api/java.desktop/javax/swing/text/html/parser/DocumentParser.html