我需要从两个强大的html标记元素
之间的html标记中提取文本<h6>Main Heading</h6>
<ul>
<strong>Sub heading 1</strong>
<li>text1</li>
…
<li>textn</li>
<strong>Sub heading 2</strong>
<li>text1</li>
…
<li>textn</li>
</ul>
因为我需要在Elements数组中获取所有强元素和li元素(文本)。我试图获得所有强大的元素
Element ulElement = doc.select("h6:matchesOwn(Main Heading).first();
Elements subHeadings = ulElement.select("strong");
Elements subLIElements = ulElement.select("strong ~ li");
所以我有subHeadings变量中的所有子标题和subLIElements变量中的所有li元素......但我需要将这两个关联起来,因为subHeadings [0]映射到strong元素之前的所有li元素。我想我需要遍历树来获得这些li元素?我可以在选择查询中执行此操作吗?
答案 0 :(得分:0)
获取Elements数组中的所有strong和li元素(文本)
您是否只需要每个元素的文本,Element
数组或Elements
数组?
仅限文字:
List<String> result = new ArrayList<>();
Elements elements = doc.select("strong, li");
for( Element e : elements )
{
result.add(e.text());
}
结果: [子标题1,text1,textn,子标题2,text1,textn]
在此示例中,elements
是一个列表,按发生顺序包含所有Strong / Li Element
:
<strong>Sub heading 1</strong>
<li>text1</li>
<li>textn</li>
<strong>Sub heading 2</strong>
<li>text1</li>
<li>textn</li>
也许您可以使用每个元素的索引来排除不需要的东西。