Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JSoup中获取相关的类和值?_Java_Jsoup - Fatal编程技术网

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

Java 如何在JSoup中获取相关的类和值?,java,jsoup,Java,Jsoup,我有一个HTML文件,其中一部分如下所示: <a name="user_createtime"></a> <p class="column"> <span class="coltitle">CreateTime</span>&nbsp;&nbsp;<span class="titleDesc"><span class='defPopupLink' onClick='popupDefinition(eve

我有一个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>
如果我得到一个输入字符串“CreateUser”,我希望输出为:

CreateTime, datetime, Timestamp when the object was created 
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。如何解析相关类并获取它们的值?或者,他们甚至没有关系,我只是走错了路?
有人能帮我得到我想要的输出吗?

根据api文档,你可以在colelement上调用children()


根据api文档,您可以在colelement上调用children()


您只选择了
-标记,因此,只打印它们持有的值

您可以使用
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将检查是否为其中一个,然后打印出元素文本。然后,它将移动到它的同级,并打印出它们的文本。

您只选择了
-标记,因此,只打印它们持有的值

您可以使用
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将检查是否为其中一个,然后打印出元素文本。然后,它将移动到它的同级,并打印出它们的文本。

他选择的元素没有任何子元素,而是同级节点。感谢您的及时回复。但是你是说titleDesc和desc类是Coltitle的子类吗?@Zyril:可能是的,你是对的,因为当我做“colElements.childrenNodeSize”时,我只得到了1:-|关于如何选择相关的同级节点的任何建议?是的,正如我在回答中所发布的。你是对的,我误读了他的html。。。Vijairam,很抱歉造成混淆,他选择的元素没有任何子元素,而是兄弟节点。感谢您的及时回复。但是你是说titleDesc和desc类是Coltitle的子类吗?@Zyril:可能是的,你是对的,因为当我做“colElements.childrenNodeSize”时,我只得到了1:-|关于如何选择相关的同级节点的任何建议?是的,正如我在回答中所发布的。你是对的,我误读了他的html。。。维贾拉姆,抱歉搞砸了哇。工作起来很有魅力。因为像你这样的人,stackoverflow就是这样。祝你今天愉快!:-)非常感谢。一个人可以尽自己所能去做贡献哇!工作起来很有魅力。因为像你这样的人,stackoverflow就是这样。祝你今天愉快!:-)非常感谢。一个人可以尽自己所能去做贡献