Android: Html.fromHtml () обрабатывает нестандартные HTML-теги

1

Я разбираю html-сообщение, которое может содержать пользовательские теги, например. <usertag uservalue="value" />.

Я использую стандартную функцию Html.fromHtml() для синтаксического анализа источника html. К сожалению, он просто игнорирует нестандартные теги и удаляет их из вывода. Я хотел бы сохранить их.

Я попытался предоставить свой собственный TagHandler функции fromHtml(), но я не знаю, что делать внутри функции handleTag(). Похоже, у меня нет доступа к нестандартным атрибутам тегов \content из функции TagHandler.handleTag()? Как использовать xmlReader, переданный внутри fromHtml()?

Спасибо

Теги:
html-parsing

2 ответа

0
Лучший ответ

Я разбираю html-сообщение, которое может содержать пользовательские теги, например. <usertag uservalue="value" />.

Тогда у вас нет HTML.

Вот несколько вариантов:

  • Избавиться от "определяемых пользователем тегов" прямо.
  • Будет ли ваша разметка исходного кода действительной HTML, а ваши "пользовательские теги" превратятся в действительный HTML (например, используя <div> и <span> с атрибутами class, как это делают люди с микроформатами)
  • Предварительно обработайте свою разметку для обработки ваших "пользовательских тегов", превратив их в действительный HTML, прежде чем вызывать Html.fromHtml()
  • 0
    Хорошо, вы можете использовать тег annotation для настраиваемой обработки тегов, как я показал здесь: stackoverflow.com/a/50267693/878126 , но я не знаю, как обрабатывать как настраиваемые, так и основные теги Html.fromHtml работая вместе , Любая идея?
  • 0
    @androiddeveloper: Понятия не имею, извините.
Показать ещё 3 комментария
0

Из того, что мы видим в javadoc, кажется, есть 4 параметра:

  • указав, что это вкладка открытия или закрытия
  • предположительно имя тега
  • который является сгенерированным Editable, с которым вы будете добавлять свои данные.
  • xmlReader, текущий читатель XML.

Похоже, вы не можете использовать атрибуты.

Одним из последних решений, хотя и немного сложным, было бы переопределить Html в соответствии с вашими потребностями. Вы можете найти его источник здесь.

  • 0
    Именно так. Мне нужно только получить текст тега как есть со всеми атрибутами и поместить его в вывод. Однако у меня есть доступ только к имени тега.
  • 0
    Последнее решение будет переделывать HTML самостоятельно. Добавил некоторые подробности об этом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню