Разбор HTML с Java с помощью HTMLCleaner; Как я могу узнать символ "<" в атрибутах?

Я разбираю довольно плохой HTML-код. У меня был хороший успех, пока я не заметил, что с некоторыми элементами атрибуты содержат "<".

Пример:

<a href="#Anchor-<ht-42368">40</a>

будет результатом как

<a href="#Anchor-">
    <ht-42368>40</ht-42368>
</a>

Это будет хорошо отображаться в браузере, но HTML-очиститель будет думать, что пытается запустить новый тег. Он добавляет ">" перед началом нового тега, который я не хочу.

Каков наилучший способ исправить это? Я не уверен, есть ли у HTMLCleaner какие-либо свойства, которые я могу настроить для управления этим... если нет, то как мне предварительно обработать данные HTML, чтобы исправить эти символы?

РЕДАКТИРОВАТЬ: фиксированный пример

РЕДАКТИРОВАТЬ: я думаю, что я мог бы применить replaceAll() с регулярным выражением, прежде чем идти в htmlcleaner. Может быть, что-то вроде ="[^"]*"и поиск, если он содержит"<".. и, если это так, замените hpml-амперсанд с экранированием. Это сработает?

0 ответов

Другие вопросы по тегам