function AjaxsltEngine() {
// private
    var ignoreAttributesWithoutValue = false;

    function selectLogic(xpath, contextNode, namespaceResolver, firstMatch) {
        // DGF set xpathdebug = true (using getEval, if you like) to turn on JS
        // XPath debugging
        //xpathdebug = true;
        var context;

        if (contextNode == this.doc) {
            context = new ExprContext(this.doc);
        }
        else {
            // provide false values to get the default constructor values
            context = new ExprContext(contextNode, false, false,
                contextNode.parentNode);
        }

        context.setCaseInsensitive(true);
        context.setIgnoreAttributesWithoutValue(ignoreAttributesWithoutValue);
        context.setReturnOnFirstMatch(firstMatch);

        try {
            var xpathObj = xpathParse(xpath);
        }
        catch (e) {
            var msg = extractExceptionMessage(e);
            throw new SeleniumError("Invalid xpath [3]: " + msg);
        }

        var nodes = []
        var xpathResult = xpathObj.evaluate(context);

        if (xpathResult && xpathResult.value) {
            for (var i = 0; i < xpathResult.value.length; ++i) {
                nodes.push(xpathResult.value[i]);
            }
        }

        return nodes;
    }

// public
    // Override
    this.isAvailable = function() { return true; };

    // Override
    this.selectNodes = function(xpath, contextNode, namespaceResolver) {
        return selectLogic(xpath, contextNode, namespaceResolver, false);
    };

    // Override
    this.selectSingleNode = function(xpath, contextNode, namespaceResolver) {
        var nodes = selectLogic(xpath, contextNode, namespaceResolver, true);
        return (nodes.length > 0 ? nodes[0] : null);
    };

    // Override
    this.setIgnoreAttributesWithoutValue = function(ignore) {
        ignoreAttributesWithoutValue = ignore;
        return this;
    };
}
function AjaxsltEngine() {
// private
    var ignoreAttributesWithoutValue = false;

    function selectLogic(xpath, contextNode, namespaceResolver, firstMatch) {
        // DGF set xpathdebug = true (using getEval, if you like) to turn on JS
        // XPath debugging
        //xpathdebug = true;
        var context;

        if (contextNode == this.doc) {
            context = new ExprContext(this.doc);
        }
        else {
            // provide false values to get the default constructor values
            context = new ExprContext(contextNode, false, false,
                contextNode.parentNode);
        }

        context.setCaseInsensitive(true);
        context.setIgnoreAttributesWithoutValue(ignoreAttributesWithoutValue);
        context.setReturnOnFirstMatch(firstMatch);

        try {
            var xpathObj = xpathParse(xpath);
        }
        catch (e) {
            var msg = extractExceptionMessage(e);
            throw new SeleniumError("Invalid xpath [3]: " + msg);
        }

        var nodes = []
        var xpathResult = xpathObj.evaluate(context);

        if (xpathResult && xpathResult.value) {
            for (var i = 0; i < xpathResult.value.length; ++i) {
                nodes.push(xpathResult.value[i]);
            }
        }

        return nodes;
    }

// public
    // Override
    this.isAvailable = function() { return true; };

    // Override
    this.selectNodes = function(xpath, contextNode, namespaceResolver) {
        return selectLogic(xpath, contextNode, namespaceResolver, false);
    };

    // Override
    this.selectSingleNode = function(xpath, contextNode, namespaceResolver) {
        var nodes = selectLogic(xpath, contextNode, namespaceResolver, true);
        return (nodes.length > 0 ? nodes[0] : null);
    };

    // Override
    this.setIgnoreAttributesWithoutValue = function(ignore) {
        ignoreAttributesWithoutValue = ignore;
        return this;
    };
}
function AjaxsltEngine ( ) { // private var ignoreAttributesWithoutValue = false ; function selectLogic ( xpath , contextNode , namespaceResolver , firstMatch ) { // DGF set xpathdebug = true (using getEval, if you like) to turn on JS // XPath debugging //xpathdebug = true; var context ; if ( contextNode == this . doc ) { context = new ExprContext ( this . doc ) ; } else { // provide false values to get the default constructor values context = new ExprContext ( contextNode , false , false , contextNode . parentNode ) ; } context . setCaseInsensitive ( true ) ; context . setIgnoreAttributesWithoutValue ( ignoreAttributesWithoutValue ) ; context . setReturnOnFirstMatch ( firstMatch ) ; try { var xpathObj = xpathParse ( xpath ) ; } catch ( e ) { var msg = extractExceptionMessage ( e ) ; throw new SeleniumError ( "Invalid xpath [3]: " + msg ) ; } var nodes = [ ] var xpathResult = xpathObj . evaluate ( context ) ; if ( xpathResult && xpathResult . value ) { for ( var i = 0 ; i < xpathResult . value . length ; ++ i ) { nodes . push ( xpathResult . value [ i ] ) ; } } return nodes ; } // public // Override this . isAvailable = function ( ) { return true ; } ; // Override this . selectNodes = function ( xpath , contextNode , namespaceResolver ) { return selectLogic ( xpath , contextNode , namespaceResolver , false ) ; } ; // Override this . selectSingleNode = function ( xpath , contextNode , namespaceResolver ) { var nodes = selectLogic ( xpath , contextNode , namespaceResolver , true ) ; return ( nodes . length > 0 ? nodes [ 0 ] : null ) ; } ; // Override this . setIgnoreAttributesWithoutValue = function ( ignore ) { ignoreAttributesWithoutValue = ignore ; return this ; } ; }
Implements XPathEngine.
Implements XPathEngine .
AJAX SLIDEE engine