0

我使用 org.htmlparser。如何通过类掩码接收节点列表?例如:

<span class="selection-link normal coeff816128@Result.draw">....</span>
<span class="selection normal coefd816154@Result.draw">....</span>

我想接收所有具有“正常”类的标签。很遗憾

新的 HasAttributeFilter("class", "normal")

不工作。HTMLparser 是否允许类似的东西new HasAttributeFilter("class", "\*normal*")

4

1 回答 1

0

如果可能的话,你可以试试jsoup——它是一个非常强大的开源 html 库。

这是一个示例,如何获取(和打印)具有normal类的每个元素:

输入HTML:

<span class="selection-link normal coeff816128@Result.draw">....</span>
<span class="selection-link coeff816128@Result.draw">....</span>
<span class="selection coefd816154@Result.draw">....</span>
<span class="selection normal coefd816154@Result.draw">....</span>

(这是你的,但有两个额外span的没有normal类)

汤:

/* Input file - containing the html listed above.*/
final File f = new File("test.html");

/*
 * Parse the html into a jsoup document. In this example i get it from
 * the file, but its possible to parse from string or connect to a
 * website.
 */
Document doc = Jsoup.parse(f, null);


/* Iterate over eacht element */
for( Element element : doc.select("*.normal") )
{
    System.out.println(element);
}

随着*.normal您选择每个带有 class 的元素normal。但是,如果您只不想使用带有span标签的那些span.normal

有关 Jsoup 选择器 api 的文档,请参见此处:http: //jsoup.org/cookbook/extracting-data/selector-syntax

顺便提一句。如果你想使用 DOM 选择器而不是select()doc.getElementsByClass("normal")

于 2013-03-24T13:14:30.390 回答