2008-12-05 76 views
3

我期待通过使用C#解析xml来创建表达式树。 XML配置将是这样的:如何通过在C#中解析Xml来创建表达式树?

<Expression> 
<If> 
    <Condition> 
    <GreaterThan> 
     <X> 
     <Y> 
    </GreaterThan> 
    </Condition> 
    <Expression /> 
<If> 
<Else> 
    <Expression /> 
</Else> 
<Expression> 

或另一个例子......

<Expression> 
    <Add> 
    <X> 
    <Expression> 
     <Y> 
     <Z> 
    </Expression> 
    </Add> 
</Expression> 

...就从哪里开始的指针将是有益的。

亲切的问候,

回答

5
using System.Linq.Expressions; //in System.Core.dll 

Expression BuildExpr(XmlNode xmlNode) 
{ switch(xmlNode.Name) 
    { case "Add": 
     { return Expression.Add(BuildExpr(xmlNode.ChildNodes[0]) 
           ,BuildExpr(xmlNode.ChilNodes[1])); 
     } 

     /* ... */ 

    } 
} 
0

我会先看看DLR,它具有发布的表达式树机制。