C#에서 XML을 구문 분석하여 표현식 트리를 만드는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/344741

문제

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>

... 어디서부터 시작 해야하는지에 대한 포인터는 도움이 될 것입니다.

친절한 안부,

도움이 되었습니까?

해결책

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

      /* ... */

    }
 }

다른 팁

발표 된 발현 트리 메커니즘이있는 DLR을 보면서 시작했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top