如何使用Swing的HTMLEditorKit.ParserCallback检索元素的属性?

时间:2009-11-19 22:50:32

标签: java html swing

我正在扩展HTMLEditorKit.ParserCallback来解析HTML。我在一个重写方法中匹配某个元素类型,如下所示:

@Override
public void handleStartTag(Tag t, MutableAttributeSet a, int pos) {
    if (Tag.DIV.equals(t)) {
        String id = (String) a.getAttribute("id");
        String clazz = (String) a.getAttribute("class");
        ...

在这一行之后,id和clazz总是为null,但我知道有问题的元素包含这些属性。

我该如何检索这些属性?

1 个答案:

答案 0 :(得分:2)

MutableAttributeSet使用pre-Java 5类型安全的枚举模式来表示密钥集。这意味着即使该属性具有名称“class”,只需插入String也不会检索该属性的值。相反,使用:

@Override
public void handleStartTag(Tag t, MutableAttributeSet a, int pos) {
    if (Tag.DIV.equals(t)) {
        String id = (String) a.getAttribute(HTML.Attribute.ID);
        String clazz = (String) a.getAttribute(HTML.Attribute.CLASS);
        ...

HTML.Attribute类包含许多可以匹配的属性。

(这让我困惑了一段时间,在网上搜索时我没有遇到过这种用法的例子。)

相关问题