سؤال

أنا أكتب تطبيقًا جويًا يستهلك واجهة برمجة تطبيقات WebService Beta. في بعض الأحيان ، يرفعني هذا العقدة XML المشوهة و ActionScript خطأ عندما أحاول إنشاء كائن XML منه.

ما كنت أفعله هو مجرد محاولة/اصطياد النتيجة وتجاهل الاستجابة بأكملها إذا كان XML سيئًا ، لكن يمكنني فقط تجاهل العقدة المشوهة.

فمثلا:

<result>
  <Song>
    <location>http://www.anyurl.com/audio/loftparty092108_pt4.mp3</location>
    <title>Phonte party @ The Loft, 9/21/08 (pt. 4)</title>
    <artist>Statik, Jahsonic &amp; Stylus        <artist>Statik, Jahsonic &amp; Stylusre />
  </Song>
</result>

انظر تلك العلامة؟ إذا شعرت بشيء من هذا القبيل ، فأود أن أتخطى الأغنية بأكملها والحصول على الأغنية التالية.

هل هناك أي طريقة يمكنني إنجاز هذا؟

هل كانت مفيدة؟

المحلول

  1. اكتب إلى مزود خدمة الويب. أخبرهم عن XML المشوه. قد يصلحونه فقط.
  2. عندما يتم تمرير XML XML المشوه مرة أخرى ، يكون وحدة فك ترميز XML الافتراضية لـ Flex في حيرة ورمي.
  3. إذا كنت ترغب في محاولة معالجة لفة فك التشفير الخاص بك. انظر xmlDecode عضو في HTTPService.

نصائح أخرى

حساء جميل هل هذا ، لكنه مكتوب في بيثون. بالطبع يمكنك دائمًا الذهاب إلى الحفر من خلال المصدر ، ومعرفة كيف نفذوه.

إذا كان عدد فئة الأخطاء صغيرًا ، فقم بتجهيز XML مسبقًا لإزالة الخطأ ، ثم تسليمه إلى محللك. سيمكنك ذلك من إزالة الحل بسهولة عند إصلاح المشكلة. في الحالة أعلاه ، يمكنك تحميل الملف كنص ، وابحث عن العقد ذات العلامات المكررة ، وإزالة العقدة بالكامل من نص XML.

أو مجرد إخطار مزود خدمة الويب وانتظر - إذا كانوا يعيدون XML المشوه تقريبًا ، فسيختنق كل محلل بها ويجب أن يكون لدى الحافز لإصلاحه قريبًا.

لا ، لا يمكنك تجاهل جزء من وثيقة XML مشوهة مع محلل XML عادي. إنه مثل مطالبة برنامج التحويل البرمجي المرن بتجاهل أخطاء بناء الجملة ومعرفة ما يعنيه المبرمج حقًا. سيتعين عليك كتابة المحلل المحلل الخاص بك الذي يحاول استنتاج ماهية التشوه وما يمكن أن يتجاهله.

بصراحة ، لا يمكن الاعتماد على أي خدمة ويب ، حتى الإصدار التجريبي ، الذي يرسل XML السيئ. إنه يعني أنها تقوم بتأليف XML "باليد" بدلاً من استخدام فئة برمجية. من المحتمل أن يرتكب أي شخص يفعل ذلك الكثير من الأخطاء الأخرى ، وخاصة الانحدارات. وقتك قيمة للغاية بحيث لا تعتمد عليهم.

هتافات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top