gpt4 book ai didi

java - JSOUP 从 p 和 span 中抓取 html 文本

转载 作者:行者123 更新时间:2023-11-28 02:48:30 26 4
gpt4 key购买 nike

我很难获得正确的输出。请参阅以下来自 HTML 的示例文本:

 <p><span class="v">1</span> Een psalm van David. De HEERE is mijn Herder, mij zal niets ontbreken.</p>

<p><span class="v">2</span> Hij doet mij nederliggen in grazige weiden; Hij voert mij zachtjes aan zeer stille wateren.</p>

<p><span class="v">3</span> Hij verkwikt mijn ziel; Hij leidt mij in het spoor der gerechtigheid, om Zijns Naams wil.</p>

我想获取 paragraph

的值,即 Een psalm van David。 De HEERE is mijn Herder, mij zal niets ontbreken. 基于用户选择的verse

到目前为止,这是我所做的:

HttpGet get = new HttpGet(url);
HttpResponse resp = client.execute(get);

String content = EntityUtils.toString(resp.getEntity());
Document doc = Jsoup.parse(content);

StringBuilder sb = new StringBuilder();

Elements passage = doc.select("p > span.v");

sb.append(passage.text() + "\n");

Elements links = doc.select(className);
for (Element link : links) {
sb.append(link.text() + " ");
}
Log.e("ELEMENTS", "" + sb.toString());
response = sb.toString();

但我只得到了诗句编号。如何获得正确的输出?我很乐意提供任何帮助。谢谢。

最佳答案

假设你想获取第 1 节的段落,你可以使用:

  1. :has(selector) 只获取包含与选择器匹配的元素的元素
  2. 然后用作选择器 span.v:containsOwn(1) 以指示您想要 v 类的 span text 包含 1
  3. 最后使用 ownText() 获取元素本身的文本而不是其子元素的文本,否则如果您想要两者都使用 text()

所以代码可以是:

String className = "v";
int verse = 1;
Element p = doc.select(String.format("p:has(span.%s:containsOwn(%d))", className, verse))
.first();
System.out.println(p.ownText());

输出:

Een psalm van David. De HEERE is mijn Herder, mij zal niets ontbreken.

如果要获取所有段落的内容,代码可以是:

StringBuilder sb = new StringBuilder();
Elements paragraphs = doc.select("p:has(span.v)");
for (Element p : paragraphs) {
sb.append(p.ownText() + "\n");
}
System.out.println(sb);

输出:

Een psalm van David. De HEERE is mijn Herder, mij zal niets ontbreken.
Hij doet mij nederliggen in grazige weiden; Hij voert mij zachtjes aan zeer stille wateren.
Hij verkwikt mijn ziel; Hij leidt mij in het spoor der gerechtigheid, om Zijns Naams wil.

关于java - JSOUP 从 p 和 span 中抓取 html 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40522752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com