Java 按CSS规则选择JSoup元素:是否有任何文档化的顺序?

Java 按CSS规则选择JSoup元素:是否有任何文档化的顺序?,java,html,jsoup,Java,Html,Jsoup,我目前正在使用JSoupCSS选择来获取HTML文档中某些元素的列表 虽然为了验证我的算法的健壮性,我必须知道元素的浏览顺序以及返回顺序 我的关注点严格地与嵌套元素相关联。如果我搜索文档中的所有元素,如下所示: <div> Something <span style='color:red;'>special</span> for me </div> 这两个元素将按什么顺序遍历并返回?我目前正在查看该方法的文档页面,但没有提供有关遍历顺序的信息。有

我目前正在使用JSoupCSS选择来获取HTML文档中某些元素的列表

虽然为了验证我的算法的健壮性,我必须知道元素的浏览顺序以及返回顺序

我的关注点严格地与嵌套元素相关联。如果我搜索文档中的所有元素,如下所示:

<div> Something <span style='color:red;'>special</span> for me </div>
这两个元素将按什么顺序遍历并返回?我目前正在查看该方法的文档页面,但没有提供有关遍历顺序的信息。有没有更准确的参考资料? 显然,我可以进行反复试验来推断顺序,但我想知道这是否已经知道/有人已经深入研究过了,因为我不知道我必须事先解析的文档的HTML结构


谢谢

为什么在另一个p标签中有一个p标签?这是没有意义的,它只是一个关于遍历顺序的快速问题的示例。因为这对读者来说很重要,所以我提出了一个更好的问题:你如何确切地表示这两个元素的返回顺序?返回包含两个元素对象的Elements对象。简单地说,当Jsoup遍历文档时,它会将每个字符读入缓冲区,并对其进行标记,然后与标记进行比较。有一个类HtmlTreeBuilder,它然后从令牌构建DOM树。堆栈用于保持父级/子级的顺序,该顺序在类DegenableLinkedList中实现。我建议您查看上的源代码以了解更多信息。我明白了。这表示它使用深度优先遍历。通过对源代码的深入研究,我发现select方法最终会在收集器类中调用,该类涉及NodeTraversor类,该类也使用堆栈。然后我查看了NodeTraversor类的源代码,该类明确表示它执行深度优先遍历。
 Document doc = Jsoup.parse(myCode);
 Elements els = doc.select("*");