كيف يمكنني إنشاء XML مع CR ، بدلاً من CRLF في XmlTextWriter

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

  •  26-09-2019
  •  | 
  •  

سؤال

أقوم بإنشاء XML عبر XmlTextWriter.

الملف يبدو جيدًا لعيني ، ويتحقق من صحة (في WC3) ، وتم قبوله من قبل العميل.

لكن بائع العميل يشكو من أن نهاية الخطوط هي CRLF ، بدلاً من CR فقط.

حسنًا ، أنا على جهاز Win32 باستخدام C#، و CRLF هو نهاية الخطوط القياسية Win32. هل هناك أي طريقة لتغيير خطوط الخطوط في XmlTextWriter؟

أيضًا-ألا ينبغي أن تهم اتخاذ خطوط خطية من محلل XML المناسب؟

أنظر أيضا: ما هي عودة النقل ، و linefeed ، وتغذية النموذج؟

ملاحظة: يبدو أن الإجابة الوحيدة هي حل جانبي - يجب عليك استخدام XMLWriter بدلاً من XMLTextWriter

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

المحلول

بالطبع ، لحظات بعد السؤال ، أجد فكرة على MSDN (لم أتمكن من العثور عليها عبر Google) التي تشير إلى XmlWritersettings.newlinechars

الذي قادني بعد ذلك إلى الإجابة غير المقبولة على لذلك: كتابة xmldocument إلى ملف مع حرف جديد محدد (C#)

كل شيء في المصطلحات .....

نصائح أخرى

استخدم XMLWritersettings لتعيين ما تريد كنهاية خطية الخط.

XmlWriterSettings mySettings = new XmlWriterSettings();
mySettings.NewLineChars = "\r";

XmlWriter writer = XmlWriter.Create(
                         new StreamWriter(@"c:\temp\hello.xml", mySettings);

لا أعرف أين تهم أحرف نهاية الخط. لم أركض من قبل.

لا ينبغي أن لا يهم الخط الذي يتم استخدامه إلى محلل محلل ينفذ بشكل صحيح (انظر المواصفات) ، أقتبس (التأكيد لي):

لتبسيط مهام التطبيقات ، معالج XML يجب أن تتصرف كما لو أنها تطبيع كل فواصل الخطوط في الكيانات المحلية الخارجية (بما في ذلك كيان المستند) على الإدخال ، قبل التحليل ، من خلال ترجمة كل من تسلسل اثنين من الشروط #XD #XA وأي #XD لا يتبعه #XA إلى حرف #XA واحد.

لذلك ، يجب أن تكون بخير مع الطريقة التي لديك بها الآن. قد ترغب في أن تسأل ما الذي يفعله بائع العميل بالفعل هناك ، فمن المحتمل أن يفعلوا ذلك بشكل خاطئ.

استخدم خاصية XMLWritersettings.newlinechars.

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