Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HTML-код выделенного фрагмента, как получить из JTextPane 
:(
    Опции темы
_Y_
Дата 19.5.2007, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 1
Всего: 34



nornad, боюсь, что ничего лучше не придумаю. 

С двойными пробелами, табуляторами и символами типа   побороться можно руками (делая замену на соответствующие символы преред поиском), но это головная боль с составлением коллекции ссылок замены. Фактически, программе нужно скормить полную таблицу юникода, да еще кучу других таблиц. А может стОит поискать уже сделанную библиотеку такого рода замен?

А вот еще идея. Со вторым JTextPane:
  • Взять HTML код и заменить в нем все "<" и ">" на какие-нибудь нейтральные символы.
  • Поместить полученную ерунду в JTextPane.
  • JTextPane должен преобразовать все символы типа &nbsp; в пробелы и т.п.
  • Извлечь из JTextPane содержимое как текст без тэгов. Он, видимо, будет и без &nbsp;-ов
  • Восстановить "<" и ">" 
  • Обработать примерно так, как я писал, но взяв позиции из основного JTextPane, а проходить через HTML код дополнительного.

Не знаю - это просто идея. Может и глупая.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
nornad
Дата 19.5.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 6
Всего: 31



Цитата(_Y_ @  19.5.2007,  11:46 Найти цитируемый пост)
А может стОит поискать уже сделанную библиотеку такого рода замен?

Сомневаюсь, что это действительно спасёт. Как я уже говорил, там проблемы не только с заменой. Есть ещё лидирующие пробелы, которые чаще всего надо удалять, но иногда (например, в теге PRE, если не ошибаюсь) - не надо. То бишь в итоге это сведётся к почти полноценному парсингу хтмла, чего лично я не хотел бы реализовывать.

Цитата(_Y_ @  19.5.2007,  11:46 Найти цитируемый пост)
nornad, боюсь, что ничего лучше не придумаю. 

В любом случае спасибо. Отрицательный результат - тоже результат. Теперь я хотя бы точнее представляю проблемы поиска соответствия тексту в хтмл-коде.
Буду дальше копать код, который нарисовали ребята и ежели разберусь, выложу тут решение. Или хотя бы опишу принцип (если решение окажется слишком громоздким).


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
krubik
Дата 11.2.2009, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.11.2008

Репутация: нет
Всего: нет



nornad, передо мной стоит анлогичная задача, нужно получить html-код выделенного фрагмента, так вот хотелось бы узнать было ли найдено решение. Заранее благодарен.
PM MAIL ICQ   Вверх
1024
Дата 12.2.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 5.12.2006

Репутация: 1
Всего: 1



у всех текстовых компонентов есть метод javax.swing.text.JTextComponent.copy(), он помещает выделенный кусок текста в системный буфер в нескольких форматах. 

если в JEditorPane загрузить хтмл, выделить какой-то кусок, вызвать метод copy, затем перейти в ворд и выбрать из меню Правка/Специальная вставка то он предложит на выбор формат плоского текста или хтмл и всё корректно вставит со ссылками. Т.е. это уже реализовано и прекрасно работает.

У JEditorPane за контент в хтмл вероятно отвечает HTMLEditorKit (т.е. то что в javax.swing.JEditorPane.getEditorKit()), можно в нём посмотреть реализацию или тупо через клипбоард.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0556 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.