سؤال

لقد قمت بتحليل XML من قبل ولكن أبدا على نطاق واسع. إذا كنت أعمل مع العديد من المستندات المشابهة لهذا التنسيق:

<?xml version="1.0" ?>
<items comment="something...">
  <uid>6523453</uid>
  <uid>94593453</uid>
</items>

ما هي أسرع طريقة لتحليل هذه الوثائق؟
1) XML DOM
2) تسلسل XML - الرفيد إلى كائن .NET
3) طريقة أخرى

تحديث
نسيت أن أذكر أنه سيكون هناك حوالي 8000 عناصر UID في المتوسط.

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

المحلول

استخدام XmlReader سيكون بالتأكيد أسرع طريقة، على الرغم من أن عليك القيام بكل التحليل يدويا بالطبع. يقرأ مباشرة من الدفق دون التخزين المؤقت أي شيء، على الرغم من أنه ليس من المناسب استخدامه بالمقارنة مع DOM.

مقارنة بين الاثنين الذي اقترحته: يجب أن تكون التسلسل أسرع من استخدام DOM منذ (أعتقد)، فلا تخبئ الشجرة بأكملها داخل الذاكرة - كما أنه يحتوي بالتأكيد على واجهة أسهل، إذا كنت تهدف بشكل خاص إلى أداء التسلسل وبعد

نصائح أخرى

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

اعتمادا على ما عليك القيام به مع البيانات XmlReader المذكورة بواسطة Noldorin هو أفضل رهان لمعالجة النمط البث. إذا كنت بحاجة إلى مزيد من الوصول إلى أسلوب AD-HOC إلى البيانات باستخدام XPath وستكون xpathDocument أسرع بكثير من مستند XML RAW.

http://msdn.microsoft.com/en-us/library/eh3exdc4.aspx.

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