【发布时间】:2016-12-24 03:21:50
【问题描述】:
我正在做一个项目,我只对页面布局感兴趣,对文本不感兴趣。我目前无法摆脱文本级别的每个元素。例如:
<div>
<ul>
<li>some menu item</li>
<li>some menu item</li>
<li>some menu item</li>
</ul>
</div>
<div>
<h3>Tile of some text</h3>
<p></p>
<p>some text</p>
<ul>
<li>some other text</li>
<li>some other text</li>
<li>some other text</li>
</ul>
</div>
我想摆脱文本级别的 ul、li、p 和 h3 元素,但保留 div 和带有菜单项的列表,因为这是页面布局的一部分。如何使用 Jsoup 做到这一点?
我一直在尝试使用 document.select() 然后 .remove() 元素执行此操作,但 select 函数不适用于此类非标准查询。
编辑:我想要得到的最终结果是:
<div>
<ul>
<li>some menu item</li>
<li>some menu item</li>
<li>some menu item</li>
</ul>
</div>
<div>
</div>
如您所见,当 ul 标记与包含文本的标记处于同一级别时,它会删除列表。 ul 标签是页面上文本的一部分,与页面布局无关。带有菜单项的 ul 标记对于页面很重要,因为它定义了那里有一个菜单并且它有 3 个不同的项。
【问题讨论】:
-
您能否举例说明修改后的 html 应该是什么样子?