سؤال

أحتاج إلى كتابة التطبيق الذي يجلب قيمة اسم عنصر العنصر (بيانات السلسلة الزمنية) من أي مصدر XML ، سواء كان ذلك ملفًا ، خادم الويب ، أي خادم آخر. سيستهلك التطبيق XML ويأخذ قيمًا ذات أهمية ، يجب أن يكون سريعًا جدًا (يتيح أن نقول 50000 أحداث/ثواني أو أكثر) أيضًا أن حجم وثيقة XML سيكون ضخمًا وقد يكون تردد هذه الوثيقة مرتفعًا أيضًا (ل على سبيل المثال ، 2500 ملف/دقيقة - أكثر من 500 ميجابايت من بيانات/ملف XML).

أريد فقط أن أرى كيف يعتقد أن الناس من ذوي الخبرة يعتقدون أنني يجب أن أتعامل مع هذا. أنا مبتدئ بدأ للتو على الرغم من أنني أستطيع القيام بأي حل تقترحني ، بغض النظر عن مدى صعوبة/سهلة.

شكرا جزيلا لك.

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

المحلول

إذا كنت تستخدم تحليل SAX ، فإن عنق الزجاجة الخاص بك هو I/O المعني ، وليس معالجة سلسلة XML. وبالنظر إلى رقم 500 ميغابايت ، أقول إنك ستستمر لديك للقيام ساكس التحليل بدلا من تحليل دوم. لذلك ، يجب أن يكون أي شيء مع واجهة نوع sax على ما يرام.

نصائح أخرى

أنا معجب بـ xerces, ، أعتقد أنه سيتعين عليك تجربتها لمعرفة أفضل أداء لتطبيقك. كما قال وارن أنك تريد استخدام معالجة SAX. من الناحية الواقعية إذا كنت بحاجة حقًا إلى الأداء ، فيجب عليك استخدام جهاز XML متخصص للقيام بالمعالجة.

أنا أستعمل libxml2 في مشاريعنا. وهو يدعم كل من ساكس ودوم. كما قال وارن يونغ ، يجب عليك استخدام ساكس. هل يمكن أن تجرب المغتربين.

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