public static XPathExpression Compile(string xpath, IXmlNamespaceResolver nsResolver) { bool flag; CompiledXpathExpr expr = new CompiledXpathExpr(new QueryBuilder().Build(xpath, out flag), xpath, flag); if (nsResolver != null) { expr.SetContext(nsResolver); } return(expr); }
public static XPathExpression Compile(string xpath, IXmlNamespaceResolver nsResolver) { bool hasPrefix; Query query = new QueryBuilder().Build(xpath, out hasPrefix); CompiledXpathExpr expr = new CompiledXpathExpr(query, xpath, hasPrefix); if (null != nsResolver) { expr.SetContext(nsResolver); } return(expr); }
/// <include file='doc\XPathNavigator.uex' path='docs/doc[@for="XPathNavigator.Evaluate1"]/*' /> public virtual object Evaluate(XPathExpression expr, XPathNodeIterator context) { CompiledXpathExpr cexpr = expr as CompiledXpathExpr; if (cexpr == null) { throw new XPathException(Res.Xp_BadQueryObject); } IQuery query = cexpr.QueryTree; query.reset(); XPathNavigator current = (context != null) ? context.Current : this; if (query.ReturnType() == XPathResultType.NodeSet) { return(new XPathSelectionIterator(current, expr)); } return(query.getValue(current, context)); }
/// <include file='doc\XPathNavigator.uex' path='docs/doc[@for="XPathNavigator.Matches"]/*' /> public virtual bool Matches(XPathExpression expr) { CompiledXpathExpr cexpr = expr as CompiledXpathExpr; if (cexpr == null) { throw new XPathException(Res.Xp_BadQueryObject); } IQuery query = cexpr.QueryTree; if (query.ReturnType() != XPathResultType.NodeSet) { throw new XPathException(Res.Xp_NodeSetExpected); } try { return(query.MatchNode(this) != null); } catch (XPathException) { throw new XPathException(Res.Xp_InvalidPattern, cexpr.Expression); } }
internal TheQuery( CompiledXpathExpr compiledQuery, InputScopeManager manager) { _CompiledQuery = compiledQuery; _ScopeManager = manager.Clone(); }