我尝试使用Java从电子邮件中读取用户名和密码
它以html格式返回邮件内容,我只想提取<td>
标签下的用户名和密码。以下是我的HTML代码段 -
<table width="200">
<tbody>
<tr>
<td colspan="2">Your Account Details:</td>
</tr>
<tr>
<td>EmailId:</td>
<td><a class="moz-txt-link-abbreviated" href="mailto:jainish.m.kapadia@trimantra.net">jainish.m.kapadia@trimantra.net</a></td>
</tr>
<tr>
<td>Password:</td>
<td>C3mRXh+|n#1J</td>
</tr>
</tbody>
</table>
我如何实现这一目标?
答案 0 :(得分:3)
请不要尝试使用RegEx解析HTML, 有关您不应该尝试此操作的详细答案,请参阅此SO answer。
您可以使用jsoup解析HTML字符串,如下所示:
String html = "<html><head><title>First parse</title></head>"
+ "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
}
jsoup还提供了分层导航的方法,如
siblingElements();
nextElementSibling();
等等。
答案 1 :(得分:1)
您可以使用以下代码段:
String str = "your html";
Pattern pattern = Pattern.compile("(<td>(.*?)<\\/td>)");
Matcher matcher = pattern.matcher(str);
这将返回所有<td>
标记。现在,您可以遍历matcher
并获取所需的字符串。