كيف يمكنني إنشاء شجرة التعبير بواسطة تحليل XML في C #؟

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

سؤال

وأنا أتطلع لإنشاء شجرة التعبير عن طريق تحليل XML باستخدام C #. إن أكس يكون كما يلي:

<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