اذهب إلى المحتوى

السؤال

نشر

داخل ملف xml على تطبيق #C، أريد بطريقة ما تحليل الملف، وجلب عنصر معين انطلاقاً من اسم العنصر:

<Premium>
        <TotalPremiumAmount>87</TotalPremiumAmount>
        <StandardPremium>87</StandardPremium>
        <OptionalPremium>0</OptionalPremium>
        <StandardTax>0</StandardTax>
        <OptionalTax>0</OptionalTax>
        <ExtendedTax>0</ExtendedTax>
        <ExtendedPremium>0</ExtendedPremium>
        <PromotionalPremium>0</PromotionalPremium>
        <FeesPremium>0</FeesPremium>
        <FeesTax>0</FeesTax>
        <StandardFeesPremium>0</StandardFeesPremium>
        <OptionalFeesPremium>0</OptionalFeesPremium>
        <Tax>0</Tax>
        <StandardPremiumDistribution>
            <Travelers>
                <Traveler>
                    <TravelerPremium>42</TravelerPremium>
                    <TravelerTax>0</TravelerTax>
                </Traveler>
                <Traveler>
                    <TravelerPremium>45</TravelerPremium>
                    <TravelerTax>0</TravelerTax>
                </Traveler>
            </Travelers>
        </StandardPremiumDistribution>
        <PackagePremiumDistribution>
            <Packages>
                <Package>
                    <PackageID>20265</PackageID>
                    <PackageName />
                    <PackageTypeID>12</PackageTypeID>
                    <Premium>87</Premium>
                    <Fees>0</Fees>
                    <Tax>0</Tax>
                    <Travelers>
                        <Traveler>
                            <TravelerID>0</TravelerID>
                            <Premium>42</Premium>
                            <Tax>0</Tax>
                        </Traveler>
                        <Traveler>
                            <TravelerID>1</TravelerID>
                            <Premium>45</Premium>
                            <Tax>0</Tax>
                        </Traveler>
                    </Travelers>
                </Package>
            </Packages>
        </PackagePremiumDistribution>
    </Premium>

أريد جلب قيمة العنصر TravelerPremium، وكانت محاولتي على هذا المنوال:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlResponse);
var premium = xmlDoc.SelectSingleNode("//TravelerPremium").InnerText;

 لكنه لا يعمل، فما الحل؟

Recommended Posts

  • 0
نشر

لهذا الغرض سنستعمل وظيفة XmlDocument، بهذا الشكل:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlResponse);
var premium = xmlDoc.SelectSingleNode("//Premium[../TravelerID = '0']")

كما يمكنك استعمال حلقات التكرار foreach لتصفح العقد nodes في حال كان الملف يتكون من عدّة عقد، هكذا:

foreach(var premium in xmldoc.SelectNodes("//Premium[../TravelerID = '0']")
{
   //  TravelerID = 0 سيتصفح العقد الموجودة في حالة
}

كما يمكننا الحصول على قيمة العقدة node مباشرة مع تضمين الشرط TravelerId=0 بالطريقة التالية:

XDocument xdoc = XDocument.Load(xmlResponse);
var premium = (string)xdoc.Descendants("Traveler").Where(x => (string)x.Element("TravelerID") == "0").Element("Premium");

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...