gpt4 book ai didi

java - 如何在JSoup中获取相关的类和值?

转载 作者:太空宇宙 更新时间:2023-11-04 07:29:33 26 4
gpt4 key购买 nike

我有一个 HTML 文件,其中一部分如下所示:

<a name="user_createtime"></a>
<p class="column">
<span class="coltitle">CreateTime</span>&nbsp;&nbsp;<span class="titleDesc"><span class='defPopupLink' onClick='popupDefinition(event, "datetime")'>datetime</span></span>&nbsp;&nbsp;&nbsp;&nbsp;<span class = "spaceandsize">(non-null)<sup><span class='glossaryLink' onclick="popupDefinition(event, '<b>non-null</b><br>The column cannot contain null values.')">?</span></sup></span>
<br>
<span class="desc">Timestamp when the object was created</span>

<a name="user_createuser"></a>
<p class="column">
<span class="coltitle">CreateUser</span>&nbsp;&nbsp;<span class="titleDesc">foreign key to <A HREF="User.html" TARGET="tableFrame">User</A></span>&nbsp;&nbsp;&nbsp;&nbsp;
<span class = "spaceandsize">(database column: CreateUserID)</span>
<br>
<span class="desc">User who created the object</span>

这样的 Coltitle 有很多。 titleDesc 和 desc 类。

现在,如果我得到像“CreateTime”这样的输入字符串,我希望输出为:

CreateTime, datetime, Timestamp when the object was created 

如果我得到一个输入字符串“CreateUser”,我希望输出为:

CreateUser,  foreign key to User, User who created the object 

我正在使用 Jsoup 来实现此目的,并且我已经做到了这一点:

Elements colElements = Jsoup.parse(html).getElementsByClass("coltitle").select("*");


System.out.println("your Col:");
for (Element element : colElements)
{
if(element.ownText().equalsIgnoreCase("CreateTime"))
System.out.println(element.text());
}

它只打印选定的副标题。如何解析相关类并获取它们的值?或者,它们根本没有关系,我只是走错了路吗?有人可以帮我得到我想要的输出吗?

最佳答案

您仅选择 <span> -标签,因此,只打印它们所持有的值。

您可以使用siblingElements() - 获取您首先选择的元素的同级元素的方法。

您的 HTML 格式似乎不正确,但以下内容应该可以工作

System.out.println("your Col:");
for (Element element : colElements) {
if (element.ownText().equalsIgnoreCase("CreateTime")) {
System.out.print(element.text());
for (Element sibling : element.siblingElements()) {
System.out.print(", " + sibling.text());
}
}
if (element.ownText().equalsIgnoreCase("CreateUser")) {
System.out.print("\n"+element.text());
for (Element sibling : element.siblingElements()) {
System.out.print(", " + sibling.text());
}
}
}

这将选择“colTitle”类的元素。if-case 将检查是否是其中任何一个,然后打印出元素文本。然后它会移动到它的 sibling ,并打印出他们的文本。

关于java - 如何在JSoup中获取相关的类和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17951033/

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