Проблема: Jsoup, чтобы проанализировать строку с <, сопровождаемым словом - PullRequest
1 голос
/ 13 мая 2019

Я использую Jsoup для разбора строки, которая содержит подстроку, начинающуюся с <, за которой следует слово, чтобы получить текст, но не получая текст правильно </p>

String input ="<p>testing with less than <string</p>";

String s = Jsoup.parse(input).text();

После извлечения текста атрибута «тестирование с меньшим, чем»результат вместо тестирования с менее чем

1 Ответ

0 голосов
/ 27 мая 2019
String input = "<p>testing with less than <string</p>";
System.out.println(input);

Выход:

<p>testing with less than <string</p>

Если мы напечатаем ввод, мы получим всю строку, как показано.

String s1 = Jsoup.parse(input).text();
System.out.println(s1);// when we use method text()

Выход:

testing with less than 

Если мы используем метод jsoup text (), мы получим простой текст без тегов HTML.

Но, тем не менее, мы не получаем всю входную строку из-за символа "<". </p>

причина обоснована в следующем отл.

String s2 = Jsoup.parse(input).html();
System.out.println(s2);// when we use method html()

Выход:

 <html>
 <head></head>
 <body>
 <p>testing with less than 
 <string></string> //the end tag is auto generated by the method
 </p>
 </body>
 </html>

Если мы используем метод jsoup html (), мы получим весь форматированный HTML-код.

здесь мы можем ясно видеть, что слово, которое пишется после символа «<» между другим тегом HTML, автоматически преобразуется в тег HTML. (если мы пишем только начальный тег, конечный тег создается автоматически независимо от того, действителен он или нет) </p>

по этой причине мы не получаем весь ввод, как показано в первом примере

...