function _visitNode(n, callback) {
    let node = n;
    if (callback(node)) {
        return true;
    }
    node = node.firstChild;
    while (node !== null) {
        if (_visitNode(node, callback)) {
            return true;
        }
        node = node.nextSibling;
    }
}
/**
 * @param callback return true for continue,false for break
 * @return boolean true: break visit;
 */
@param callback return true for continue,false for break
@return boolean true: break visit.
@param callback return true for continue false for break @return boolean true : break visit .
function _visitNode(n, callback) {
    let node = n;
    if (callback(node)) {
        return true;
    }
    node = node.firstChild;
    while (node !== null) {
        if (_visitNode(node, callback)) {
            return true;
        }
        node = node.nextSibling;
    }
}
function _visitNode ( n , callback ) { let node = n ; if ( callback ( node ) ) { return true ; } node = node . firstChild ; while ( node !== null ) { if ( _visitNode ( node , callback ) ) { return true ; } node = node . nextSibling ; } }
@param callback return true for continue,false for break
 @return boolean true: break visit;
@param callback return true for continue false for break @return boolean true : break visit ;