我正在使用Jericho java客户端库来解析所有href链接。我想做的是过滤掉或跳过源中包含特定 id 的所有链接。我已经尝试了几件事,我的解决方案并不漂亮,但基本上我可以通过检查这样的东西来完成这一点:
for(Element element : elements) {
if (element.getAllStartTags().toString().contains("skip_me")) {
// do something
}
}
但我更喜欢更清洁的解决方案。让我们假设这是来源:
<td>
<a href="http://www.yahoo.com" id="skip_me" />
</td>
<td>
<a href="http://www.google.com" />
</td>
只是一个小片段,但我希望它最终返回我的只是"www.google.com"。我将不胜感激对此的任何帮助。谢谢。
这是另一种解决方案:
for( Element element : elements )
{
if( element.getStartTag().getName() == HTMLElementName.A ) // Select only 'a'-tags
{
final String id = element.getAttributeValue("id"); // Get Attribute 'id'
if( id == null || !id.equals("skip_me") ) // Process element if it has a.) no id (null) or b.) the id is not 'skip_me'
{
System.out.println(element); // Process Element
}
}
}
输出:
(使用您的 HTML)
<a href="http://www.google.com" />
Another solution:
List<Element> elements = source.getAllElements("a");
for(Element element : elements )
{
final String id = element.getAttributeValue("id");
if(id == null || !id.equals("skip_me"))
{
System.out.println(element.toString());
}
}
输出:
<a href="http://www.google.com" />