前端之家收集整理的这篇文章主要介绍了
一种不好的删除XML空白节点和注释节点的方法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
public static void deleteNoteAndBlank(Node node) {
if (node.getNodeType() == TEXT_TYPE || node.getNodeType() == NOTE_TYPE) {
return;
}
ArrayList<Node> deleteNodes = new ArrayList<Node>();
for (int i = 0; i < node.getChildNodes().getLength(); i++) {
Node childNode = node.getChildNodes().item(i);
//递归
deleteNoteAndBlank(childNode);
//不能一个一个删除,否则后续节点会计算错误....
if ((childNode.getNodeType() == TEXT_TYPE && childNode.getNodeValue().length() == 2) || childNode.getNodeType() == NOTE_TYPE) {
deleteNodes.add(childNode);
}
}
for (int i = 0; i < deleteNodes.size(); i++) {
node.removeChild(deleteNodes.get(i));
}
}