C # XSLCLEMPileDTransform باستخدام XMLDocument أو XpathDocument عند التحرير مطلوب؟

StackOverflow https://stackoverflow.com/questions/1902145

سؤال

أنا ذاهب إلى افتراضات زوجين هنا:

  1. XpathDocument غير قابلة للتحرير.
  2. XMLDocument قابلة للتحرير.
  3. XpathDocument هو أكثر كفاءة ل xslcompiledtransform.

أن تكون الحالة (ويرجى تصحيح لي إذا كنت مخطئا)، فهل سيكون أفضل (أكثر كفاءة) إلى:

  1. قم بإجراء تعديلات باستخدام xmldocument، ثم تحويلها إلى XpathDocument قبل التحويل. هل هناك طريقة محسنة للقيام بذلك؟
  2. فقط العصا مع xmldocument من خلال التحويل.

بعض الخلفية، أحصل على XML معقدة من Webservice، ثم استخدم XPath للعثور على بعض العناصر التي يجب تعديلها، ثم استخدم XSLT لإنشاء HTML.

شكرا مقدما للمساعدة.

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

المحلول

يعتمد ذلك على مقدار التعديل المطلوب، وكم تكون البيانات الكبيرة، وما إذا كنت على دراية XSLT. إذا "لا" إلى آخر، استخدم فقط XDocument إلخ (آخر مرة ركض فيها ملف تعريف، XDocument كان أسرع من ذلك XmlDocument لبياناتي - تشغيل الاختبارات الخاصة بك). يستخدم XDocument.Load / XDocument.Parse, ، ابحث عن العقدة، تحريره، وحفظه.


اذا أنت يجب استخدم XSLT، ثم XDocument ليس حقا خيار؛ بمجرد تحميلها في XmlDocument ربما أنت كذلك البقاء مع XmlDocument - لن أوصي بتحليلها في ثانيا دوم.

بالطبع، يجعلنا نتساءل: لماذا تعديل XML الخارج من XSLT إذا كنت ستستخدم XSLT؛ ربما مجرد ترجمة خلال xslt؟

للحصول على إجابة دقيقة 100٪ لبياناتك ستحتاج إلى الملف الشخصي، بالطبع. ولكن أشياء مثل الاستخدام المناسب لإنشاءات التجمع XSLT سوف تجعل في كثير من الأحيان كثير فرق أكبر من ذلك XmlDocument ضد XPathDocument.

نصائح أخرى

مجرد استخدام XmlDocument فئة للتحويل. سيكون من الضروري أن تكون وثيقة ضخمة لرؤية مكاسب أداء حقا. قد ترغب في تجميع مثيل ثابت من XslCompiledTransform فئة إذا كنت تخطط لاستخدامها عدة مرات.

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