ما هي أفضل طريقة لقراءة وكتابة مستندات CXML في C#؟

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

  •  04-10-2019
  •  | 
  •  

سؤال

أعلم أن هذا سؤال غامض مفتوح. آمل أن أحصل على بعض الاتجاه العام.

أحتاج إلى إضافة CXML Punchout إلى موقع / تطبيق ASP.NET C#. هذا هو استبدال شيء كتبته منذ سنوات في Coldfusion.

أنا مطور C# من ذوي الخبرة بشكل معقول لكنني لم أفعل الكثير مع XML. يبدو أن هناك الكثير من الخيارات المختلفة لمعالجة XML في .NET.

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

هل علي أن:

1) بناء فصول يدويًا بناءً على DTD واستخدم Serializer XML؟

2) استخدام أداة لإنشاء فصول. هناك عينة من ملفات CXML قابلة للتنزيل من Ariba.com. لقد حاولت XSD.exe إنشاء XSD ثم XSD.exe /C لإنشاء فئات. عندما أحاول أن أحصل على أخطاء ، يبدو أن هناك "ارتباك" حول ما إذا كان يجب أن تكون بعض العناصر قيمًا واحدة أو صفائف.

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

2) إنشاء مجموعة بيانات و readxml ()؟

3) إنشاء مجموعة بيانات مكتوبة و readxml ()؟

4) استخدام LINQ إلى XML. غالبًا ما أستخدم LINQ للكائنات ، لذا فأنا على دراية بـ LINQ بشكل عام ولكني أكافح لمعرفة ما يعطيني في هذا الموقف.

5) بعض الوسائل الأخرى.

أعتقد أنني بحاجة إلى تحسين فهمي لـ XML بشكل عام ولكن رغم ذلك ... هل أفتقد طريقة واضحة للقيام بذلك؟ في موقع Coldfusion القديم ، وجدت مكونًا مجانيًا ("TAG") تجاهل بشكل أساسي أي مخطط وقراءة XML في "هيكل" وهو في الأساس سلسلة من جداول التجزئة المتداخلة التي كان من السهل قراءة الكود في الكود. ربما كان ذلك قذرة للغاية لكنه نجح.

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

شكرا على أي مؤشرات ...

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

المحلول

إذا كنت بحاجة إلى إنشاء XML تعسفي بتنسيق دقيق ، فيجب عليك إنشاءه يدويًا باستخدام LINQ-to-XML.

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