我正在尝试使用 JSoup 解析一些 html,大致如下所示:
<div class="mod qmy_text withanno">
<ul class="yfncnhl mytext"></ul>
<h3>
<span>Monday, August 12, 1999</span>
</h3>
<ul>
<li><a href="some_link_here">Title of My Article</a><cite>News
Source<span>( (Sun, Aug 12)</span>
</cite></li>
</ul>
我的问题是,如何解析该 HTML,以便只能返回 <cite>
中的内容——8 月 12 日,星期日。
到目前为止,我只能使用表达式输出 h3 之后的日期
Elements links = doc.select("div[class=mod qmy_text withanno] > h3");
System.out.println(links.text());
最佳答案
让我们格式化您的 HTML,使其仅包含您要查找的元素的路径。它看起来像
<div class="mod qmy_text withanno">
...
<ul>
<li>
...
<cite>News Source
<span>( (Sun, Aug 12)</span>
</cite>
</li>
</ul>
因此,您的选择可能类似于 div.mod.qmy_text.withanno > ul > li > cite > span
。所以用这样的代码
Elements span = doc.select("div.mod.qmy_text.withanno > ul > li > cite > span");
String spanText = span.text();
我们的 spanText
将包含 ((8 月 12 日星期日)
。
如果您只想获取最后一个(
和最后一个)
之间的部分来获取Sun, Aug 12
,您可以使用
String date = spanText.substring(spanText.lastIndexOf('(')+1, spanText.lastIndexOf(')'));
关于java - JSoup 解析 HTML 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32443312/