我有一个HTML页面来扫描标题和图形元素。 HTML文件的代码是:
<body>
<section>
<h2>H2-1</h2>
<div>
<section>
<h3>H3-1</h3>
<div>
<figure><img src="Fig 1.png"></figure>
</div>
</section>
<section>
<h3>H3-2</h3>
<div></div>
</section>
</div>
</section>
<section>
<h2>H2-2</h2>
<div>
<figure><img src="Fig 2.png"></figure>
<figure><img src="Fig 3.png"></figure>
<figure><img src="Fig 4.png"></figure>
</div>
</section>
<section>
<h2>H2-3</h2>
<div>
<figure><img src="Fig 5.png"></figure>
<section>
<h3>H3-3</h3>
<div><figure><img src="Fig 6.png"></figure></div>
</section>
</div>
</section>
<section>
<h2>H2-4</h2>
<div>
</div>
</section>
</body>
我想要的输出是:
H2-1
H3-1
Fig 1
H2-2
Fig 2
Fig 3
Fig 4
H2-3
Fig 5
H3-3
Fig 6
我想找到显示所有具有子图元素的标题。如果它具有直接子图形元素,我不想显示标题。
我正在尝试的JSoup代码是:
Document doc = Jsoup.parse(sourceCode);
Elements sectionTags = doc.body().getElementsByTag("section");
for (Element sectTag : sectionTags)
{
System.out.println (sectTag.children().first().ownText()); //print the Heading text
Elements figureTags = sectTag.getElementsByTag("figure");
for (Element figTag : figureTags)
{
System.out.println (figTag.getElementsByTag("img").attr("src").toString()); // print the image name
}
}
但我没有得到所需的输出。我得到的输出是:
H2-1
Fig 1
H3-1
Fig 1
H2-2
Fig 2
H2-3
Fig 5
H3-3
Fig 6
有任何帮助吗?我是JSoup的新手,感谢任何有用的建议或提示。
提前致谢。
答案 0 :(得分:1)
你可以试试这个
{{1}}