예제 #1
0
        private XPathExpression GetCompiledExpression(SifXPathExpression expression)
        {
            XPathExpression returnValue = expression.CompiledExpression;

            if (returnValue == null)
            {
                returnValue = fDefaultNavigator.Compile(expression.Expression);
                expression.CompiledExpression = returnValue;
            }
            return(returnValue);
        }
예제 #2
0
 /// <summary>
 /// Evaluates the xpath and returns the resulting object. Primitive types are wrapped into objects.
 /// </summary>
 /// <param name="expression"></param>
 /// <returns></returns>
 public object GetValue(SifXPathExpression expression)
 {
     return(GetValue(GetCompiledExpression(expression)));
 }
예제 #3
0
 internal INodePointer CreatePath(SifXPathExpression sifXPathExpression)
 {
     return(CreatePath(sifXPathExpression.Expression));
 }
예제 #4
0
        private void Compile()
        {
            // If there is a value assignment in the rule, chop it off
            String sqp = fDef;
            int lastEqualsSign = fDef.LastIndexOf("=");
            if (lastEqualsSign > -1)
            {
                int lastBracket = fDef.LastIndexOf("]");
                if (lastBracket < lastEqualsSign)
                {
                    sqp = fDef.Substring(0, lastEqualsSign);
                    fValueIndex = lastEqualsSign + 1;
                }
            }

            fExpression = SifXPathContext.Compile(sqp);
        }
예제 #5
0
 private XPathExpression GetCompiledExpression( SifXPathExpression expression )
 {
     XPathExpression returnValue = expression.CompiledExpression;
     if ( returnValue == null )
     {
         returnValue = fDefaultNavigator.Compile( expression.Expression );
         expression.CompiledExpression = returnValue;
     }
     return returnValue;
 }
예제 #6
0
 internal INodePointer CreatePath( SifXPathExpression sifXPathExpression )
 {
     return CreatePath( sifXPathExpression.Expression );
 }
예제 #7
0
 /// <summary>
 /// Evaluates the xpath and returns the resulting object. Primitive types are wrapped into objects.
 /// </summary>
 /// <param name="expression"></param>
 /// <returns></returns>
 public object GetValue( SifXPathExpression expression )
 {
     return GetValue( GetCompiledExpression( expression ) );
 }