java - 如何将当前元素嵌入到新元素中并使用 jsoup 更新到文档中
问题描述
我正在使用 jsoup 处理 html,我想将 <img> 元素嵌入到 <p>
中:
<div>
<img src="image.jpg"/>
</div>
至:
<div>
<p><img src="image.jpg"/><br></p>
</div>
我尝试在代码下使用但无法更新到 jsoup 文档中
@Test
public void testaddp(){
String acontent = "<div><img src="/base/img/avs.jpg"/></div>";
Document document = Jsoup.parseBodyFragment(acontent);
Element element = document.body();
Element imgelement = element.select("img").first();
Element newElement = new Element("p");
newElement = newElement.insertChildren(0,imgelement,new Element("br"));
System.out.println(newElement.outerHtml());//seems i got the correct html in newElement
//imgelement.replaceWith(newElement);//failed to update into element
imgelement.wrap(newElement.outerHtml());//also failed to update into element
//how to updated into document?
System.out.println();
}
解决方案
试试这个代码。评论中的解释。
String acontent = "<head>Some head</head><body><div>A div</div><div><img src=\"/base/img/avs.jpg\"/></div><div>Another div</div></body>";
Document document = Jsoup.parse(acontent);
System.out.println(document);
//select element you want to change
Element img = document.select("img").first();
//wrap it with p
Element p = new Element("p");
p.html(img.outerHtml());
//append br
Element br = new Element("br");
p.appendChild(br);
//replace original with new
img.replaceWith(p);
System.out.println(document);
推荐阅读
- java - 清除画布并在其中再次绘制
- django - 当我尝试在邮递员上发布数据时,总是收到 {"detail":"Unsupported media type \"application/json\" in request."} 错误
- console - 如何在 Windows 上使用 MIDI-CSV 程序
- .net - .Net 应用程序中的本机依赖管理
- php - 如何将 guzzle 响应(来自图像 url)转换为 base64
- c# - 显示覆盖时如何禁用输入
- javascript - 将键和原型方法转换为驼峰式
- php - Laravel 5.8 Eloquent 无法按预期工作,尽管它的原始转储查询有效
- r - 我们如何编程 statet 以同时使用 knitr 和 pdflatex
- android - Firebase 功能集成问题