代碼:
- /*
- * Xml文檔對象去掉註釋後輸出字符串
- * @return
- */
- public String documentToStr(){
- Iterator<Node> nodeIt= doc.nodeIterator();
- //刪除根節點上的註釋,以及Xml文件中與根節點同級的註釋內容
- while(nodeIt.hasNext()){
- Node node=nodeIt.next();
- if(node.getNodeType()==Node.COMMENT_NODE){
- doc.remove(node);
- }
- }
- Element root= doc.getRootElement();
- deleteXmlNotation(root);
- return doc.asXML();
- }
- /**
- * 去掉註釋
- * @param ele
- */
- private void deleteXmlNotation(Element ele){
- Iterator<Node>nodes = ele.nodeIterator();
- List<Node> rmNodes=new ArrayList<Node>();
- //循環收集可以刪除的節點
- while(nodes.hasNext()){
- Node subNode=nodes.next();
- if(subNode.getNodeType()==Node.COMMENT_NODE){
- //ele.remove(subNode);
- rmNodes.add(subNode);
- rmNodes.add(nodes.next());
- }
- }
- //刪除收集到的節點
- for(Node node:rmNodes){
- ele.remove(node);
- }
- //遞歸,處理下級節點
- Iterator<Element>eleIt= ele.elementIterator();
- while(eleIt.hasNext()){
- deleteXmlNotation(eleIt.next());
- }
- }