这里输入代码
<table style=”padding: 0px; margin: 0px;” cellpadding="0" cellspacing="0" width="626" align="center" bgcolor="White" border="0">
<tr>
<td style=”vertical-align: top;” height="61" valign="top" bgcolor="#0492CB"><a href="http://www.aoec.com"> <img alt="AoEC" src="http://www.aoec.com/email/mute/images/header.gif" style="width: 626px; height: 61px;" border="0" /></a></td>
</tr>
</table>
java编码是
Document doc = Jsoup.parse(code);
Elements elements = doc.getElementsByAttribute("style");
for(int se=0;se<elements.size();se++)
{
System.out.println(elements.get(se).attr("style"));
}
输出
padding:;
vertical-align:;
在上面的代码中,getElementsByAttribute(“style”)无效..
答案 0 :(得分:2)
引号”
不是有效的属性分隔符。您需要直接引号:"
或'
。
你的代码很好。输入HTML无效。这必须报告给原始的HTML作者,以便他/她可以修复HTML(它也会破坏普通的webbrowser)。
如果此HTML不在您的控制范围内,请考虑使用String#replace()
替换无效的引号。
code = code.replace('”', '"');
或者,如果环境中的字符编码尚未正确配置为UTF-8。
code = code.replace('\u201D', '"')
答案 1 :(得分:1)
我认为这已经弃用了。您应该使用.select();
方法。另外,在循环遍历时使用foreach或迭代器是个好主意,因为一个简单的可能会抛出一些NullPointerExceptions
您可以找到它的文档here
但不是我会用它:
//That should get you all tags that have the style attribute
Elements elements = doc.select("[style]");
//That foreach should avoid exceptions, and loop through the collection
for(Element element : elements) {
//The print gets a little cleaner too!
System.out.println(element.attr("style"));
}