如何使用jsoup替换标签

4
我想将所有的图像标签替换为 div 标签。我已经能够选择所有标签,并且我知道我需要使用 replaceWith,但是我无法使用它。
如果我使用 TextNode 将其替换为 <div></div>,它会转换为 &amp;lt;div&amp;gt;我的 div&amp;lt;/div&amp;gt; 我知道&amp;lt;&amp;gt; 是为了表示 <>
请帮助我。
3个回答

13

我猜你是在使用 element.replaceWith(new TextNode("<div></div>"),""); 进行替换?

Textnode 是用于文本的,会转义内容 - 这就是为什么你看到了 HTML 实体字符。你需要用标签来替换,所以可以尝试使用 element.replaceWith(new Element(Tag.valueOf("div"), ""));


谢谢您的回复,但我也能够使用DataNode完成它。 - Deepak

3
这是实现这个目标最简单的方法:
 Elements elements= doc.getElementsByTag("img");
 elements.tagName("div");

希望这对您有用。

希望这能对您有所帮助。


0

只需使用find方法并传递特定标签 let tag = soup.find('tag_name') tag.name = 'new_tag';//替换标签

对于多个标签,只需放入循环中 let tag = soup.findAll('tag_name'); if (tag) { for (let i = 0; i < tag.length; i++) { tag[i].name = 'your_new_tag'; } }


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接