以下是我使用dom4j在解析Xml文件时,去掉节点注释的文本以及去掉注释的节点的办法和一些理解,贴出来,供大家参考。以下是代码:
/**
* 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());
}