我正在构建一个小型 Java 应用程序来获取五个维基百科页面并在 html 源代码中查找子字符串。我正在使用库 org.apache.commons.lang3.StringUtils。然而,维基百科的文章可能很大,而且 StringUtils 似乎有一个限制:
String html;
try {
html = Jsoup.connect("http://en.wikipedia.org/wiki/Canada").get().html();
} catch(IOException e) {
html = "";
}
String trimmedHtml = substringBetween(html, "<html>", "</html>");
System.out.println(html); // prints the whole source code fine
System.out.println(trimmedHtml); // prints null
为什么控制台为 trimmedHtml
打印 null
?输出应该(几乎)与 html
一样大。字符串输出或 substringBetween()
的参数是否有最大长度?
最佳答案
字符串 util 方法有效并且经过良好测试 - 这里没有“限制”或“错误”。
查看页面源代码显示 <html>
不匹配:
<html lang="en" dir="ltr" class="client-nojs">
一个很好的例子,说明为什么 HTML 的字符串处理通常不是一个好主意。继续使用 Jsoup 提供的支持,它可能正在使用 html()获取 元素后的方法。
关于java - 尝试提取 <html>..</html> 时,substringBetween() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25320628/