• 0

كيف أحصل على بيانات XML من خلال متغير String على #C؟

لديّ المتغير التالي على تطبيق بـ #C:

string xml = "<ABCProperties> <Action> Yes | No | None </Action><Content>
<Header> Header Text </Header><Body1> Body Paragraph 1 </Body1>
<BodyN> Body Paragraph N</BodyN></Content><IsTrue> true | false </IsTrue>
<Duration> Long | Short </Duration></ABCProperties>";

وأريد الحصول على البيانات المتضمنة بداخله، مع العلم أنه على شكل ملف XML، وقد استخدمت:

XDocument doc = XDocument.Parse(xml);
var a = doc.Descendants("Header").Single();

لكن الأمر لا ينفع، فهل من طريقة لعمل ذلك بشكل صحيح؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

سنبدأ بجلب محتوى العقدة، ثم استعمال حلقة التكرار foreach لتصفح جمع العناصر الموجودة داخلها، مع استعمال أداة الشرط if للتأكد من البيانات المراد استخراجها، ليكون الكود على الشكل التالي:

string xml = @"<ABCProperties> <Action> Yes | No | None </Action><Content>
<Header> Header Text </Header><Body1> Body Paragraph 1 </Body1>
<BodyN> Body Paragraph N</BodyN></Content><IsTrue> true | false </IsTrue>
<Duration> Long | Short </Duration></ABCProperties>";

XDocument doc = XDocument.Parse(xml);

XElement content = doc.Root.Element("Content");

foreach (XElement el in content.Elements())
{
    string localName = el.Name.LocalName;

    if (localName == "Header")
    {
        Console.WriteLine(localName + ": " + el.Value.Trim());
    }
    else if (localName.StartsWith("Body"))
    {
        Console.WriteLine(localName + ": " + el.Value.Trim());
    }
}

Console.ReadKey();

لاحظ أنه تم استعمال ()string.Trim، لإزالة أي فراغ موجود على مستوى المحتوى.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن