ASP.Net Menü Datenbindung Codierproblem
-
24-09-2019 - |
Frage
Ich habe ein Menü, in dem ich Daten binden durch:
XmlDataSource xmlData = new XmlDataSource();
xmlData.DataFile = String.Format(@"{0}{1}\Navigation.xml", getXmlPath(), getLanguage());
xmlData.XPath = @"/Items/Item";
TopNavigation.DataSource = xmlData;
TopNavigation.DataBind();
Das Problem ist, wenn mein xml Sonderzeichen enthält, da ich viel französisch Worte.
Als Alternative habe ich versucht, einen Strom statt und verwendet mit Codierung der Sonderzeichen zu bekommen, mit dem folgenden Code:
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();
Das Problem, das ich jetzt habe, ist, dass meine Daten nicht aktualisiert, wenn ich den Pfad ändern, wo der Strom gelesen wird.
Wenn ich den Code überspringen durch sie tut, aber nicht auf meiner Seite.
Also das Ding entweder, wie bekomme ich die Daten te aktualisiert? Oder (was eigentlich bevorzugt wird), wie bekomme ich die Codierung direkt im ersten Stück Code?
Hilfe ist sehr apreciated!
EDIT:
ich die CDATA Lösung versucht, aber ich arbeite mit Attributen, so dass es nicht möglich ist, ein Element in einem Attribute angeben, meinen 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>
Jede andere Ideen?
Lösung 2
löste ich mein Problem.
Ich habe die Codierung meiner XML-Datei in Notepad ++ auf UTF8 anstelle von ANSI (Standard), und es löste das Problem.
Vielen Dank für die Antworten sowieso
Andere Tipps
Versuchen Sie Französisch Wörter zu wickeln mit Tag
In diesem Fall XML wird Ihre Sonderzeichen nicht analysiert