سؤال

يتم هروب "&" في النص ويتم تحويله إليه & عند إنشاء ملف XML باستخدام XMLTextWriter ولكني لا أريد أن يحدث التحويل كيفية منعه؟

هل هناك أي طريقة أخرى إلى جانب استخدام Func للكاتب من XmlTextWriter؟

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

المحلول

إذا وضعت ampersand غير المقيدة في XML ، لم يعد XML صالحًا.

اختيرتك إما الهروب (وهو ما تفعله مكتبتك):

<tag>One &amp; another</tag>

أو لفه في CDATA:

<tag><![CDATA[One & another]]></tag>

التي يمكن القيام بها بواسطة:

xmlWriter.WriteCData("One & another");

نصائح أخرى

لماذا لا تريد أن يحدث هذا؟ يبدو لي أن المكتبة تفرض حرفًا صحيحًا على النحو المطلوب بواسطة XML.

لست متأكدًا مما إذا كان سيعمل ، ولكن قد ترغب في التحقق من خصائص XMLWritersettings المتاحة من خلال XmlTextWriter.settings ، وخاصة خاصية CheckCharacters.

من ناحية أخرى ، كما ذكر برايان أغنيو ، لا ترميز & إلى & قد يكون الطريقة الخاطئة للذهاب لأنها ستقوم بإبطال XML الخاص بك (إلا إذا قمت بالفعل بتشفيرها إلى وفي هذه الحالة قد ترغب فقط في فك تشفيرها قبل إعطائها قبل إعطائها إلى فئة XmlTextWriter.

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