我如何创建一个防爆pression通过解析XML在C#树?创建一个、pression、XML

2023-09-03 21:28:15 作者:缠绵丶Forever

我期待通过创建使用C#解析XML的前pression树。 该XML将是这样的:

 <防爆pression>
<如果>
  <条件>
    < GREATERTHAN>
      &其中X  -  GT;
      < Y>
    < / GREATERTHAN>
  < /条件>
  <防爆pression />
<如果>
<否则>
  <防爆pression />
< / ELSE>
<防爆pression>
 

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

 <防爆pression>
  <添加>
    &其中X  -  GT;
    <防爆pression>
      < Y>
      < Z>
    < / EX pression>
  < /添加>
< / EX pression>
 

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

亲切的问候,

解决方案

 使用System.Linq.Ex pressions; //在System.Core.dll的

防爆pression BuildExpr(XmlNode的的xmlNode)
 {开关(xmlNode.Name)
    {案添加:
       {返回前pression.Add(BuildExpr(xmlNode.ChildNodes [0])
                               ,BuildExpr(xmlNode.ChilNodes [1]));
       }

      / * ... * /

    }
 }
 
Broswer 之代码是如何编译的

I am looking to create an expression tree by parsing xml using C#. The xml would be like the following:

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

or another example...

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

...any pointers on where to start would be helpful.

Kind regards,

解决方案

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]));
       } 

      /* ... */

    }
 }