我有一个HTML文件,其中一部分如下所示:
<a name="user_createtime"></a>
<p class="column">
<span class="coltitle">CreateTime</span> <span class="titleDesc"><span class='defPopupLink' onClick='popupDefinition(event, "datetime")'>datetime</span></span> <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> <span class="titleDesc">foreign key to <A HREF="User.html" TARGET="tableFrame">User</A></span>
<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());
}
只打印选定的coltitle。如何解析相关类并获取其值?或者,他们甚至没有关联,我只是走错了路? 有人可以帮助我得到我想要的输出吗?
答案 0 :(得分:1)
您只选择<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将检查它们是否是其中之一,然后打印出元素文本。然后它将转移到它的兄弟姐妹,并打印出他们的文本。
答案 1 :(得分:0)
根据api文档,您可以在colElements上调用children()。
http://jsoup.org/apidocs/org/jsoup/nodes/Element.html#children()