/// <summary> /// Evaluates an XPath expression in a newly created context, making additional parameters available to the expression. /// </summary> /// <param name="nav"> /// Navigator indicating the current node; if <c>null</c>, a dummy navigator is used. /// </param> /// <param name="xpathExpr">XPath expression to evaluate.</param> /// <param name="param"> /// Values to be available while evaluating the expression as <c>$paramN</c>, where N is the /// index within this array. /// </param> /// <returns>The result of evaluating the expression</returns> public static object Evaluate(XPathNavigator nav, string xpathExpr, params object[] param) { Checker.NotNull(xpathExpr, "xpathExpr"); nav = EnsureNavigator(nav); var expr = nav.Compile(xpathExpr); var context = new TriflesXPathContext(); int i = 0; foreach (var paramN in param) { context.AddVariable(XNamespace.None + ("param" + i), paramN); i++; } expr.SetContext(context); return nav.Evaluate(expr); }
/// <summary> /// Evaluates an XPath expression in a newly created context, making additional parameters available to the expression. /// </summary> /// <param name="nav"> /// Navigator indicating the current node; if <c>null</c>, a dummy navigator is used. /// </param> /// <param name="xpathExpr">XPath expression to evaluate.</param> /// <param name="param"> /// Values to be available while evaluating the expression as <c>$paramN</c>, where N is the /// index within this array. /// </param> /// <returns>The result of evaluating the expression</returns> public static object Evaluate(XPathNavigator nav, string xpathExpr, params object[] param) { Checker.NotNull(xpathExpr, "xpathExpr"); nav = EnsureNavigator(nav); var expr = nav.Compile(xpathExpr); var context = new TriflesXPathContext(); int i = 0; foreach (var paramN in param) { context.AddVariable(XNamespace.None + ("param" + i), paramN); i++; } expr.SetContext(context); return(nav.Evaluate(expr)); }
/// <summary> /// Creates a new context using the given name table. /// </summary> /// <param name="nt"></param> /// <param name="parent"></param> public TriflesXPathContext(NameTable nt, TriflesXPathContext parent = null) : base(nt) { this.table = CreateChildTable(parent); }
/// <summary> /// Creates a new context. /// </summary> /// <param name="parent"></param> public TriflesXPathContext(TriflesXPathContext parent = null) { this.table = CreateChildTable(parent); }
private static XPathXNamesTable CreateChildTable(TriflesXPathContext parent) { return new XPathXNamesTable((parent != null) ? parent.table : null); }
public DeferredVariable(TriflesXPathContext context, XName name) { this.context = context; this.name = Checker.NotNull(name, "name"); }
public DeferredVariable(TriflesXPathContext context, XName name) { this.context = context; this.name = Checker.NotNull(name, "name"); }
private static XPathXNamesTable CreateChildTable(TriflesXPathContext parent) { return(new XPathXNamesTable((parent != null) ? parent.table : null)); }
/// <summary> /// Creates a new context using the given name table. /// </summary> /// <param name="nt"></param> /// <param name="parent"></param> public TriflesXPathContext(NameTable nt, TriflesXPathContext parent = null) : base(nt) { this.table = CreateChildTable(parent); }
/// <summary> /// Creates a new context. /// </summary> /// <param name="parent"></param> public TriflesXPathContext(TriflesXPathContext parent = null) { this.table = CreateChildTable(parent); }