java - 如何使用 HTMLParser 获取标签之间的值

标签 java html html-parsing

我正在使用 HTMLParser (org.htmlparser) 来解析 HTML。我用它来访问标签并获取标签属性,如下所示:

NodeVisitor linkvisitor = new NodeVisitor() {
    public void visitTag(Tag tag) {
        if ("script".equalsIgnoreCase(name)) {
            String srcValue = tag.getAttribute("src");
            // do stuff 
        }
    }
        // How to get value instead of tag?     
}

但是现在我需要获取标签之间的值,例如 <script>标签?

提前致谢。

最佳答案

因为您已经知道 Tag是一个脚本标签,您应该能够将其转换为 ScriptTag 。那么你应该能够使用 CompositeTag.getStringText() .

NodeVisitor linkvisitor = new NodeVisitor() {
  public void visitTag(Tag tag) {
    if (tag.getTagName().equals("SCRIPT")) {
      ScriptTag script = (ScriptTag)tag;
      String srcValue = script.getAttribute("src");
      String text = script.getStringText();
    }
  }
};

请参阅Javadocs for NodeVisitor有关设置 visitTag 的说明方法。

如果您只关心具有结束标记的标记,您可以查看它是否是 CompositeTag 的实例。 ,否则标记没有结束标记 ( <tag/> )。然后调用getStringText()上面提到的方法。

if(tag instanceof CompositeTag) {
  CompositeTag cTag = (CompositeTag)tag;
  String text = cTag.getStringText();
}

关于java - 如何使用 HTMLParser 获取标签之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6511289/

相关文章:

java - 如何将 POJO bean 绑定(bind)到公共(public)标题页

java - 管理线程同步中的静态关键字 - Java

html - 连接硬编码对齐 HTML 与 CSS

Python - BeautifulSoup Webscrape

java - java中的正则表达式

java - GregorianCalendar 给出了 "Asia/Singapore"时区的意外结果,系统日期为 2014 年 1 月 30 日

c# - 服务器通知客户端它已初始化的最佳方式

javascript - 复杂的 CSS 选择器 - 如何要求可见

jquery - 使用 css3 transform-origin 居中和缩放

python - Python 中用于从 Web 中提取信息的解析器