java - 如何获取 DOM 对象中两个元素之间的文本?

标签 java html dom tags jsoup

我正在使用 JSoup 来解析这个 HTML 内容:

<div class="submitted">
    <strong><a title="View user profile." href="/user/1">user1</a></strong> 
    on 27/09/2011 - 15:17 
    <span class="via"><a href="/goto/002">www.google.com</a></span>
</div> 

在网络浏览器中看起来像这样:

user1 on 27/09/2011 - 15:17 www.google.com

可以使用以下方法将用户名和网站解析为变量:

String user    = content.getElementsByClass("submitted").first().getElementsByTag("strong").first().text(); 
String website = content.getElementsByClass("submitted").first().getElementsByClass("via").first().text();

但我不确定如何将“on 27/09/2011 -15:17”放入变量中,如果我使用

String date = content.getElementsByClass("submitted").first().text();

它还包含用户名和网站???

最佳答案

你总是可以像这样删除 userwebsite 元素(你可以克隆你的 submitted 元素如果您不希望删除操作“损坏”您的文档):

public static void main(String[] args) throws Exception {

    Document content = Jsoup.parse(
      "<div class=\"submitted\">" +
      "  <strong><a title=\"View user profile.\" href=\"/user/1\">user1</a></strong>" +
      "  on 27/09/2011 - 15:17 " + 
      "  <span class=\"via\"><a href=\"/goto/002\">www.google.com</a></span>" +
      "</div> ");

    // create a clone of the element so we do not destroy the original
    Element submitted = content.getElementsByClass("submitted").first().clone();

    // remove the elements that you do not need 
    submitted.getElementsByTag("strong").remove();
    submitted.getElementsByClass("via").remove();

    // print the result (demo)
    System.out.println(submitted.text());
}

输出:

on 27/09/2011 - 15:17

关于java - 如何获取 DOM 对象中两个元素之间的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7568433/

相关文章:

javascript - 使用文本区域限制按钮

html - @viewport 在 Safari Mobile (ipad 2) 中不起作用

javascript - 如何从字符串中解析 XML dom?

java - 避免将 XML 命名空间添加到输出消息

java - 如何在 Java 中在 Y 线程上运行 X 任务?

java - 在 Eclipse 中运行 Android 项目时出现 IOException

javascript - 无法在 bootstrap div 上插入 d3 图表

javascript - 使用 src 引用 Javascript 或直接将其注入(inject) HEAD 在性能和内存占用方面的差异

java - 如何从 Spring Boot 应用程序更改 consul K/V Store 中的值

java - 将 ArrayList<> 对象传递给扩展 ArrayList 的类