2016-04-01 159 views
1

我有一個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>標籤(多一點)。

回答

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> 
+1

豎起大拇指桑迪普!這工作就像一個魅力,在insertChildren一個很好的發現。 –