예제 #1
0
        private bool MatchCondition(XElement e, IScope ds, string suffix)
        {
            var attrname = "xi-" + suffix;

            le = le ?? new LogicalExpressionEvaluator();
            if (e.Attr(attrname).ToBool())
            {
                var ifname  = e.Attr(attrname);
                var ismatch = le.Eval(ifname, ds);

                if (!ismatch)
                {
                    if (e.Parent != null)
                    {
                        e.Remove();
                    }
                    else
                    {
                        e.SetAttributeValue("xi-delete", true);
                    }
                    return(false);
                }
                e.SetAttributeValue(attrname, null);
            }
            return(true);
        }
예제 #2
0
        private bool MatchCondition(XElement e, IScope ds, string suffix) {
            var attrname = "xi-" + suffix;
            le = le ?? new LogicalExpressionEvaluator();
            if (e.Attr(attrname).ToBool()) {
                var ifname = e.Attr(attrname);
                var ismatch = le.Eval(ifname, ds);

                if (!ismatch) {
                    if (e.Parent != null) {
                        e.Remove();
                    }
                    else {
                        e.SetAttributeValue("xi-delete", true);
                    }
                    return false;
                }
                e.SetAttributeValue(attrname, null);
            }
            return true;
        }