Обработка текста - обнаружение, если вы находитесь внутри тега HTML в Java - PullRequest
0 голосов
/ 09 апреля 2011

У меня есть программа, которая выполняет обработку текста в документе, отформатированном в формате html, на основе информации об этом же документе без информации html. По сути, я нахожу слово или фразу в неформатированном документе, затем нахожу соответствующее слово в отформатированном документе и изменяю внешний вид слова или фразы, используя HTML-теги, чтобы они выделялись (например, выделение жирным шрифтом или изменение его цвета).

Вот моя проблема. Иногда я хочу сделать форматирование для слова или фразы, которые могут быть частью HTML-тега (например, возможно, я хочу сделать некоторое форматирование для слова «шрифт», но только если это слово не находится внутри HTML-тега) , Есть ли простой способ определить, является ли строка частью HTML-тега в блоке текста или нет?

Кстати, я не могу просто удалить теги html в документе и выполнить обработку оставшегося текста, потому что мне нужно сохранить html в результате. Мне нужно добавить к существующему HTML, но мне нужно надежно различать строки, которые являются частью тегов, и строки, которые не являются.

Есть идеи?

Спасибо,

Эллиот

Ответы [ 3 ]

1 голос
/ 09 апреля 2011

Вы могли бы сделать несколько вещей

  • Написать регулярное выражение для того, что вы делаете.В Google можно найти множество уже написанных
  • Найти библиотеку для анализа документа (например, http://htmlparser.sourceforge.net/) и заменить только текст

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

0 голосов
/ 09 апреля 2011

Если вы проанализировали DOM, что у вас есть, если вы делаете это правильно. Затем спросите тег super, который содержит текущий тег, и продолжайте делать это, если это не тег, который вы ищете.

Если вы используете какой-то пользовательский поиск или регулярное выражение для разбора html, то проверьте лучший ответ на этот вопрос:

RegEx соответствует открытым тэгам, кроме автономных тэгов XHTML (по причине +4000 голосов)

0 голосов
/ 09 апреля 2011

Используйте следующий код регулярного выражения, чтобы определить, имеет ли он теги HTML: "\ <. *? \>"

И здесь вы можете узнать, как эффективно использовать регулярное выражение в Javaкод.Удачного кодирования;)

...