【发布时间】:2020-11-18 07:00:30
【问题描述】:
我有一个来自电子邮件的输入流,可以像这样转换为字符串:
String content = "Hello world!\n"+
"Thank you!\n"+
"\n"+
"<html>\n" +
"<head>\n" +
"\t<meta id=\"leadId\" name=\"leadId\" content=\"6778130\"/>\n" +
"\t<title>testing</title>\n" +
"</head>\n" +
"<body>\n" +
"\t<span>testing - 20200727</span>\n" +
"</body>\n" +
"</html>"+
"\n" +
"Have a good day!";
我想从这个字符串中提取 HTML 部分,我期望的结果是:
<html>
<head>
<meta id="leadId" name="leadId" content="6778130"/>
<titletesting</title>
</head>
<body>
<span>testing - 20200727</span>
</body>
</html>
我之前尝试过 Jsoup,但它对我不起作用。 有谁知道它的其他解决方案? 我可以使用 javax.mail 吗(输入流本身)?如果是这样,我该怎么做?可以举个例子吗?
【问题讨论】:
-
这是一个奇怪的电子邮件正文。看起来有人连接了多部分/替代消息的所有部分。如果是这样,那么只阅读一个 MIME 部分的正文是有意义的。
-
试试
String html = content.replaceFirst("(?s)^.*(<html>.*</html>).*$", "$1");
标签: java html email jsoup jakarta-mail