lib/pate.js
function xpathFn(token, rootEl, ns) {
    var split = token.trim().split('@');
    var retVal = rootEl;

    var path = split[0].replace(/\/$/, "") || null;
    var attr = split[1] || null;

    if(path)
        retVal = retVal.get(path, ns);

    if(attr) {
        retVal = retVal ? retVal.attr(attr) : "";
        retVal = retVal ? retVal.value() : "";
    } else {
        retVal = retVal ? retVal.text() : "";
    }

    return retVal;
}
function xpathFn(token, rootEl, ns) {
    var split = token.trim().split('@');
    var retVal = rootEl;

    var path = split[0].replace(/\/$/, "") || null;
    var attr = split[1] || null;

    if(path)
        retVal = retVal.get(path, ns);

    if(attr) {
        retVal = retVal ? retVal.attr(attr) : "";
        retVal = retVal ? retVal.value() : "";
    } else {
        retVal = retVal ? retVal.text() : "";
    }

    return retVal;
}
function xpathFn ( token , rootEl , ns ) { var split = token . trim ( ) . split ( '@' ) ; var retVal = rootEl ; var path = split [ 0 ] . replace ( / \/$ / , "" ) || null ; var attr = split [ 1 ] || null ; if ( path ) retVal = retVal . get ( path , ns ) ; if ( attr ) { retVal = retVal ? retVal . attr ( attr ) : "" ; retVal = retVal ? retVal . value ( ) : "" ; } else { retVal = retVal ? retVal . text ( ) : "" ; } return retVal ; }
XPatch matcher function
XPatch matcher function