我有一个html / xml文件,需要替换特定的标签。我遇到了以下xml:
的问题<section>
<banner>
</section>
我可以使用以下解决方案替换<banner>
标记:
Replacing tag with letters using JSoup
但是我遇到了带有孩子的标签的问题,例如:
将<section>
替换为<mysection><b>
,将</section>
替换为</b></mysection>
?
(当然保留<section>
标签的子女)
我试过了:
els = doc.select("section");
els.tagName("mysection");
但我也希望添加<b>
标签(以及更多)。
答案 0 :(得分:2)
这个怎么样
// sample data: a parent section containing nodes
String szHTML = "<section><banner><child>1</child></banner><abc></abc></section>";
Document doc = Jsoup.parse(szHTML);
// select the element section
Element sectionEle = doc.select("section").first();
// renaming the section element to mysection
sectionEle.tagName("mysection");
// get all the children elements of section element
Elements children = sectionEle.children();
// remove all the children
for(Node child: children){
child.remove();
}
// insert element b in mysection
Element b = sectionEle.appendElement("b");
// insert all the child nodes back to element b
b.insertChildren(0, children);
System.out.println(doc.toString());
期望的输出:
<mysection>
<b>
<banner>
<child>
1
</child>
</banner>
<abc></abc></b>
</mysection>