gpt4 book ai didi

java - 如何从类名分隔的 div 中获取文本值?

转载 作者:行者123 更新时间:2023-11-30 04:04:24 25 4
gpt4 key购买 nike

我是使用 Jsoup 的新手,我在从 div 获取文本值(类名文本作为字符串)时遇到问题。这是 a 想要废弃的字符串。

<body>
<div class="details ">
<div class="title turquoise2">
AAC-Olympia
</div>
<div class="subhead turquoise2">
Correspondentie-adres:
</div>
<div class="text">
Rijdt 37
<br /> 6631AP HORSSEN
<br /> 0487-541339
</div>
<div class="subhead turquoise2">
Accommodatie:
</div>
<div class="text">
Sportpark De Polenkamp
<br /> Bredestraat 3
<br /> 6631BC HORSSEN
<br /> 0487-541339
</div>
<div class="subhead turquoise2">
Opgericht:
</div>
<div class="text">
01-07-2011
</div>
<div class="subhead turquoise2">
Tenue:
</div>
<div class="text">
Shirt: Wit
<br /> Broek: Zwart
<br /> Kousen: Zwart
</div>
<div class="subhead turquoise2">
Regio:
</div>
<div class="text">
Veldregio: Regio 4 veld
<br /> Zaalregio:
</div>
<div class="subhead turquoise2">
Info:
</div>
<div class="text">
Relatienummer: NXTG36Z
<br /> Email:
<a href="mailto:janberg37@Caiway.nl">janberg37@Caiway.nl</a>
<br /> Website:
<a href="http://www.aac-olympia.nl">http://www.aac-olympia.nl</a>
<br /> District: Oost
</div>
<div class="subhead turquoise2">
Klasse(s):
</div>
<div class="text">
Klasse za:
<br /> Klasse zon: 5e klasse
<br /> Klasse zaal:
<br /> Junioren: Nee
<br /> Pupillen: Nee
<br /> Vrouwen: Nee
<br /> G-Voetbal: Nee
</div>
<div class="text">
<a href="http://downloadcentrum.knvb.nl/sportlink/knvb/document/matrix%20verenigingen%20district%20oost?id=55988">Overzicht indeling district Oost</a>
</div>
</div>
<div class="details details-functionaris">
<div class="title turquoise2">
AAC-Olympia
</div>
<div class="voorzitter">
</div>
<div class="secretaris">
</div>
<div class="penningmeester">
</div>
<div class="functionarissen">
</div>
</div>
</body>

我想从第二个 div 中获取类名文本,以下信息分开,我尝试了以下代码,但给了我空字符串,

Element Adres = finalDocument.getElementsByClass("text").get(1);
String AllTextValue = Adres.text();//This give me all information from the div

但我想要将所有 4 个文本值分开,

String firstText =  For this one i have no ieee what i need to do
String SecondText = Adres.getElementsByTag("br").get(0).text();//Returns Empty value
String ThirdText = Adres.getElementsByTag("br").get(1).text();//Returns Empty value
String FourthText = Adres.getElementsByTag("br").get(2).text();//returns Empty value

有人可以帮助我吗?非常感谢。

最佳答案

您要查找的文本不在 br 标记内 - 它在外部:
您使用<br /> abcd为了让您的代码正常工作,它应该是:<br>abcd</br> (我很确定这是无效的)

您应该使用列表而不是 <br> - 像这样:

<div class="text">
Sportpark De Polenkamp
<li> Bredestraat 3 </li>
<li> 6631BC HORSSEN </li>
<li> 0487-541339 </li>
</div>

那么你的逻辑应该有效。

不要忘记循环 getElementsByTag 的结果而不是硬编码调用.get(x)因为行数可能会改变。

请注意 - 您可能需要为这些 <li> 分配单独的样式元素,以便文本显示时不带项目符号。

编辑:由于无法更改 HTML,因此以下代码“应该”有效:

String SecondText = (TextNode)(Adres.getElementsByTag("br").get(0).nextSibling()).text();

这应该得到 br元素,询问下一个Node在它之后 - 应该是 TextNode包含您看到的实际文本。然后从 TextNode 中获取文本.

这段代码有两个问题:

  1. 我从未使用过 Jsoup - 所以我不知道这是否可行,我的答案基于我的 DOM 知识。
  2. 这看起来像是一个非常容易出错的代码,并且如果/当网站更改结构时可能会失败 - 您应该创建一个方法来获取文本并处理该方法内的所有错误条件。

检查 Jsoup javadocs 以了解如何使用其 API:http://jsoup.org/apidocs/org/jsoup/nodes/Element.html

关于java - 如何从类名分隔的 div 中获取文本值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110042/

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