如何通过在C#中解析Xml来创建表达式树?

时间:2008-12-05 18:28:41

标签: c# .net xml linq expression-trees

我希望通过使用C#解析xml来创建表达式树。 xml如下所示:

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

或其他例子......

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

......关于从哪里开始的任何指示都会有所帮助。

亲切的问候,

2 个答案:

答案 0 :(得分: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]));
       } 

      /* ... */

    }
 }

答案 1 :(得分:0)

我首先看一下DLR,它有一个已发布的表达式树机制。