質問

私はを介してデータをバインドするメニューがあります:

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();

私が今抱えている問題は、私は、ストリームが読み込まれますパスを変更したときに私のデータが更新されないということです。

私はそれがないコードによってではなく、私のページにスキップするときます。

のデータがリフレッシュされ、TE事はどちらかであるので、どのように私はのですか?または(実際に好まれている)どのように私は、右のコードの最初の部分にエンコードするのですか?

ヘルプは非常にapreciatedされる!

EDITます:

私は、それが属性で要素を指定することはできませんので、しかし、私は属性で働いている、私のXMLをCDATAソリューションを試します:

<?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

私は私の問題を解決します。

私はUTF8の代わりに、ANSI(デフォルト)に++メモ帳に私のxmlファイルのエンコーディングを変更し、それが問題を解決します。

とにかく回答をお寄せいただきありがとうございます。

他のヒント

<![CDATA [...]]>タグ

とフランス語の単語を包むようにしてください

この場合、XMLは、あなたの特別な文字を解析しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top