code: protected void clip(Node node, int type) {
          if(node.getNodeType() != NodeType.TEXT) {
              return;
          }
  
          char c;
          int j = 0;
          String content = node.getTextContent();
  
          if(type == 1) {
              /**
               * 删除该文本节点的后缀空格
               * 也就是删除下�?��标签节点的前导空�?             * 只删除空格不删除其他不可见字�?             */
              for(j = content.length() - 1; j > -1; j--) {
                  c = content.charAt(j);
  
                  if(c == ' ' || c == '\t') {
                      continue;
                  }
                  else {
                      break;
                  }
              }
              content = content.substring(0, j + 1);
          }
          else {
              /**
               * 删除该文本节点的前导回车
               * 也就是删除前�?��标签节点的后�?���?             * 只删除回车不删除其他不可见字�?             */
              int length = content.length();
  
              for(j = 0; j < length; j++) {
                  c = content.charAt(j);
  
                  if(c == '\r') {
                      continue;
                  }
                  else if(c == '\n') {
                      j++;
                      break;
                  }
                  else {
                      break;
                  }
              }
  
              if(j <= length) {
                  content = content.substring(j, length);
              }
          }
          ((TextNode)node).setTextContent(content);
      }
docs: type == 1 prefix clip
  type == 2 suffix clip
  @param node
  @param type