Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java中的html页面获取html链接_Java_Xml - Fatal编程技术网

从Java中的html页面获取html链接

从Java中的html页面获取html链接,java,xml,Java,Xml,我正在尝试获取一些html链接(可以包含UTF-8字符,比如俄语aso),并将它们存储在java应用程序中的字符串中。 由于我收到的html页面包含很多错误,我使用了HtmlCleaner,它工作得非常好(顺便说一句) 有了这些干净的html页面,我现在面临一个问题: 我试图用XSL样式表将这些字符串收集到XML文件中,但当我想用dom4j SAXReader读取该文件时失败了,因为仍然存在一些特殊字符(如链接中的参数(&for)) 所以我的问题是:获取这些html链接并将其存储在字符串中而不必

我正在尝试获取一些html链接(可以包含UTF-8字符,比如俄语aso),并将它们存储在java应用程序中的字符串中。 由于我收到的html页面包含很多错误,我使用了HtmlCleaner,它工作得非常好(顺便说一句)

有了这些干净的html页面,我现在面临一个问题: 我试图用XSL样式表将这些字符串收集到XML文件中,但当我想用dom4j SAXReader读取该文件时失败了,因为仍然存在一些特殊字符(如链接中的参数(&for))

所以我的问题是:获取这些html链接并将其存储在字符串中而不必对其进行36次解析的最简单方法是什么

HTML页面包含一个表。这是一行:

<tr>
<td>1</td>
<td>name</td>
<td>title</td>
<td>3:48</td>
<td align="center"><a href="http://..." target="_blank" rel="nofollow"  ><img src="images/fisher_listen_icon1.gif" width="18" height="18" border=0></a></td>
<td align="center"><a target=_blank rel="nofollow" onclick="loadornot()" href="http://..."><img border=0 width="18" height="18" src="images/d.gif"></a></td>
</tr>

1.
名称
标题
3:48
我想将这一行存储在一个对象中(每个td都是一个属性)


谢谢;)

在使用类似
url的代码解析HTML时,请替换符号。替换(&),“&;”

因为您使用的是html,所以IMO最简单的方法就是使用它

例如:

Document doc = Jsoup.parse(html);
Elements links = doc.select("a[href]");

for (Element link : links) {
       System.out.println(link.attr("href"));
}

尝试使用Swing或HTMLPasser,如本例所示:

然后你就可以得到

if (tag == Tag.A) {
  String address = (String) attribute.getAttribute(Attribute.HREF);
  list.add(address);
}

为什么不直接使用正则表达式并提取href=属性呢?使用正则表达式,您很难跳过注释,以及被特殊标记包围的文本,如
CDATA