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

كيف أحلل ملف xml، وأحدد قيمة معينة بداخله؟

K@m@l

السؤال

داخل ملف 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...