如何解析HTML而不调用直接父级

时间:2017-01-17 12:36:46

标签: 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>

2 个答案:

答案 0 :(得分:1)

我们可以这样使用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();}

答案 1 :(得分:0)

我会评论,但我还不能

我知道有一个函数getElementsByTag(),您可以使用它来获取<h1>的每个元素,因此,如果您只知道标题使用<h1>,则可以使用此函数< / p>

您也可以使用select()https://jsoup.org/cookbook/extracting-data/selector-syntax)来选择标题或者例如副标题 你没有说字幕的类改变了所以我假设你可以查询我的副标题的<p>标签