1

我想知道 Jsoup 中是否有任何方法告诉我具有相同标签名称、文本和类(如果有)的元素与具有相同标签名称、文本和相同类(如果有)的其他元素不同。为澄清起见,请考虑以下 HTML 片段:

<html>
<body>
<div>Here I Am</div><div>First Time</div>
<div>Here I Am</div><div>Again</div>
</body>
</html>

现在在上面的代码中,我如何用 div 标签和文本分隔这两个元素我在这里。另请注意,这里的两个元素没有 id。

上面的例子很简单,但实际情况可能更复杂。因此,如果您好心地建议我一个笼统的答案,我将不胜感激。谢谢你。

4

4 回答 4

1

Give id for making it unique for the document. this can be done as

<div id="first">Here I Am</div>
<div id="second">Here I Am</div>
于 2013-04-20T05:31:45.307 回答
1

在 DOM 和 XPath 的概念下,这些节点除了其规范顺序外是相同的。如果要访问此模式的第 n 个节点,

//div[text()='Here I Am'][n]

其中n是从 0 开始的。

于 2013-04-20T05:44:30.223 回答
1

获取所有 div 元素并选择您想要的。

例子

Document doc = Jsoup.parse("<html>\n" +
        "<body>\n" +
        "<div>Here I Am</div><div>First Time</div>\n" +
        "<div>Here I Am</div><div>Again</div>\n" +
        "</body>\n" +
        "</html>");

Element div = doc.select("div").first();

System.out.println(div.html());

输出

Here I Am

其他元素可以通过索引访问。

例子

Element div = doc.select("div").get(3);

输出

Again
于 2013-04-28T18:01:33.923 回答
0

您可以识别 div。例如,您可以这样做:

<div class="div1"><h2>Here I Am</h2></div>

     <div class="div2"><h2>First Time</h2></div>

<div class="div3"><h2>Here I Am</h2></div>

     <div class="div4"><h2>Again</h2></div>
于 2013-04-20T05:39:37.357 回答