我正在创建一个HTML解析器,它从给定的URL获取HTML,找到导航菜单html,并将其放入String中。 HTML中要复制到String中的URL需要添加URL的一部分(“www.stackoverflow.com”部分)。如何查找字符串中的现有URL并将缺少的部分添加到其中以便它们起作用。
String
中的网址格式为:
<a href="/qestions/11744851.cfm">
我需要以下面的形式制作它们:
<a href="www.stackoverflow.com/questions/11744851.cfm">
答案 0 :(得分:1)
如果XHTML是有效的XML,最简单的方法是将其解析为XML并使用XPath(例如/ body / div / a @ href,其中/ body / div是HTML中菜单部分的路径。 还有一个名为HTMLParser(http://htmlparser.sourceforge.net/)的项目,你可能想尝试一下(根据页面,它有'链接提取,用于浏览网页或收集电子邮件地址' ;但我从未使用它,所以我无能为力。 另一方面,如果HTML不是有效的,您可能想要使用http://ccil.org/~cowan/XML/tagsoup/ - 它可能有用,或者可能不会,在我们尝试的网站上,它做得非常好。
编辑:在找到有趣的部分之后,可以使用简单的连接来添加缺失的部分
答案 1 :(得分:1)
尝试将此正则表达式与ReplaceAll()
方法一起使用:
str = subString.replaceAll("<a href=\"(.*)\">", "<a href=\"http://www.stackoverflow/$1\">");