java - 如何在不调用直接父级的情况下解析 HTML

标签 java html parsing jsoup

我想使用 jsoup 解析此 HTML,但我需要在不使用“更改类名”类的情况下提取标题和副标题,因为类名总是在变化。我只需要来自“h1”属性和“p”的文本

HTML:

<header class="my header">
   <div class="row">
      <h3>I don't want this      </h3>
      <div class="Changing class name">
         <h1>The headline             </h1>
         <p class=" my subtitle">
            The subtitle
         </p>
      </div>
   </div>
</header>

最佳答案

我们可以这样使用 getElementsByTag:

String MyTitle = doc.getElementsByTag("h1").get(0).text();

或者我们可以通过这种方式使用选择(工作更快):

String MyTitle = doc.select("my.header h1").first().text().trim();

关于副标题,我添加了一个检查以避免在字符串中输入 NULL:

Element Subtitle = doc.select("p.my").first();
if (Subtitle != null) {
    String MySubtitle = doc.select("p.my").text().trim();}

关于java - 如何在不调用直接父级的情况下解析 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41697392/

相关文章:

c++ - 具有 XPath 和宽字符支持的最轻量级 XML 解析器

parsing - 如何解析 boolean 表达式

java - 有没有一种快速的方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

javascript - 如何向左右滚轮添加滚动箭头按钮

javascript - Selenium,如何按ENTER键,没有元素

android - 为 android webviews 创建独立 html5 页面的良好设计方法

java - 使用可选条目解析分隔输入

java - 当我使用 jmf 流式传输时,为什么在 Wireshark 中是 UDP,而不是 RTP?

java - 使用 String Replace() 或 ReplaceAll() 配置动态电子邮件内容

java - 如何在 google-app-engine (java) 中设置复杂的自定义 crontab?