ASP.NET Databling Databling Problem
-
24-09-2019 - |
سؤال
لدي قائمة حيث أقوم بربط البيانات من خلال:
XmlDataSource xmlData = new XmlDataSource();
xmlData.DataFile = String.Format(@"{0}{1}\Navigation.xml", getXmlPath(), getLanguage());
xmlData.XPath = @"/Items/Item";
TopNavigation.DataSource = xmlData;
TopNavigation.DataBind();
المشكلة هي عندما يكون لدى XML شخصيات خاصة ، لأنني أستخدم الكثير من الكلمات الفرنسية.
كبديل حاولت استخدام دفق بدلاً من ذلك واستخدام الترميز للحصول على الأحرف الخاصة ، مع الكود التالي:
StreamReader strm = new StreamReader(String.Format(@"{0}{1}\Navigation.xml", getXmlPath(), getLanguage()), Encoding.GetEncoding(1254));
XmlDocument xDoc = new XmlDocument();
xDoc.Load(strm);
XmlDataSource xmlData = new XmlDataSource();
xmlData.ID = "TopNav";
xmlData.Data = xDoc.InnerXml;
xmlData.XPath = @"/Items/Item";
TopNavigation.Items.Clear();
TopNavigation.DataSource = xmlData;
TopNavigation.DataBind();
المشكلة التي أواجهها الآن هي أن بياناتي لا تحديث عندما أقوم بتغيير المسار الذي يتم فيه قراءة الدفق.
عندما أتخطى الكود ، ولكن ليس على صفحتي.
إذن الأمر هو أيضًا ، كيف يمكنني تحديث البيانات؟ أو (الذي يفضل بالفعل) كيف يمكنني الحصول على الترميز في الجزء الأول من الكود؟
المساعدة للغاية!
تعديل:
جربت حل CDATA ، ومع ذلك أنا أعمل مع سمات ، لذلك لا يمكن تحديد عنصر في سمة ، XML:
<?xml version="1.0" encoding="utf-8" ?>
<Items Text="">
<Item Text="Actualités>"/>
<Item Text="Matériau">
<Item Text="Arsenal"/>
<Item Text="Vêtements"/>
</Item>
<Item Text="Links"/>
</Items>
أي أفكار أخرى؟
المحلول 2
لقد حلت مشكلتي.
لقد غيرت ترميز ملف XML الخاص بي في Notepad ++ إلى UTF8 بدلاً من ANSI (افتراضي) ، وحل المشكلة.
شكرا على الردود على أي حال
نصائح أخرى
حاول لف الكلمات الفرنسية معu003C![CDATA[....]]> بطاقة شعار
في هذه الحالة ، لن تقوم XML بتحليل شخصياتك الخاصة