كيف يمكنني إنشاء XML مع CR ، بدلاً من CRLF في XmlTextWriter
-
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.