Jsoup - 如何选择目标元素下面的元素?

时间:2015-08-01 03:23:11

标签: java jsoup

我有一个.span6>h6元素列表,可能存在也可能不存在,具体取决于用户是否在其个人资料页面上填写了该选项。我想得到每个选项的价值(如果它们存在)。

这些选项的值作为.span6>h6标记存储在每个<pre>元素中。我需要获取每个h6元素,读取其内容,并为每个选项存储在其下方元素中包含的值,位于正确的位置。

这是我想要做的一个例子。

<div class="row">
  <div class="span6">
    <h6>Gender</h6>
    <pre>Male</pre>
  </div>
  <div class="span6">
    <h6>Location</h6>
    <pre>Someplace</pre>
  </div>
  <div class="span6">
    <h6>Occupation</h6>
    <pre>Figuring out this problem</pre>
  </div>
  <div class="span6">
    <h6>Interests</h6>
    <pre>Figuring out this problem</pre>
  </div>
</div>

另一个深度示例,以防我的第一个令人困惑。如果h6元素的内容为“Gender”,则获取下一个元素<pre>并将文本存储在某处。

任何帮助将不胜感激,提前谢谢!

1 个答案:

答案 0 :(得分:0)

我没有测试它,但我认为以下内容可以正常工作:

Elements els = Jsoup.parse(html).select( ".span > h6" );
for (Element el : els) {
        String option = el.text();
        String value = el.nextElementSibling().text();
}

.nextElementSibling()将获得h6之后的第一个元素;如果您认为自己需要具体并且只获得pre个兄弟姐妹,则可以使用以下内容替换该行:

String value = el.siblingElements().select( "pre" ).first().text();