我想知道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。
以上示例非常简单,但实际情况可能更复杂。所以,如果你建议我一个普遍的答案,我将非常感激。谢谢。
答案 0 :(得分:1)
提供id以使其对文档唯一。这可以作为
完成<div id="first">Here I Am</div>
<div id="second">Here I Am</div>
答案 1 :(得分:1)
在DOM和XPath的概念下,这些节点除了规范顺序外是相同的。如果要访问此模式的第n个节点,
//div[text()='Here I Am'][n]
其中 n 从0开始。
答案 2 :(得分: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
答案 3 :(得分: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>