问题:Jsoup用<后跟单词来解析字符串

时间:2019-05-13 16:39:42

标签: java jsoup html-parsing

我正在使用Jsoup解析包含以<开头的子字符串的字符串,后跟一个单词以获取文本,但不能正确获取文本

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

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

提取属性文本后,将显示结果“小于”进行测试,而不是进行小于进行测试

1 个答案:

答案 0 :(得分:0)

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标签的纯文本。

但是,由于字符“ <”,我们仍未获得完整的输入String。

原因在以下示例中是合理的。

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标记。 (如果我们只写一个开始标签,则结束标签会自动创建,无论它是否有效)

这就是我们没有如第一个示例所示获得全部输入的原因