TextBlock坚持在metro应用程序中显示“而不是”

时间:2013-11-01 06:50:12

标签: c# xaml microsoft-metro

我正在尝试从网站获取文字说明并使用此代码

            HttpResponseMessage response1 = await httpClient.GetAsync(url);
            response1.EnsureSuccessStatusCode();
            string srcCode = await response1.Content.ReadAsStringAsync();
            string desc = "";
            rem = @"id=""full_notes"">";
            if (srcCode.IndexOf(rem) != -1)
            {
                desc = srcCode.Remove(0, srcCode.IndexOf(rem) + rem.Length);
                rem = @"<a href=""#"">less</a></span>";
                desc = desc.Remove(desc.IndexOf(rem));
            }
            else
            {
                rem = @"<span>Description:</span>";
                desc = srcCode.Remove(0, srcCode.IndexOf(rem) + rem.Length+15);
                rem = "</div>";
                desc = desc.Remove(desc.IndexOf(rem));
            }
            string rep = @"""";
            desc.Replace("&quot;",rep);
            on.Description = desc;

一切顺利,我在一个文本块中显示它,但问题来自我得到的文本引用“”然后文本块只显示&amp; quot而不是“ 有谁知道如何解决这个问题?

注意:我尝试使用替换,如代码中所示无法正常工作

1 个答案:

答案 0 :(得分:3)

您正在调用Replace但没有对结果做任何事情 - 字符串在C#中是不可变的,因此Replace方法不会更改现有字符串的内容。正如文档所述:

  

此方法不会修改当前实例的值。相反,它返回一个新字符串,其中所有出现的 oldValue 都被 newValue 替换。

所以你需要:

desc = desc.Replace("&quot;", "\"");

从根本上说,我认为你最好使用HTML解析器(例如HTML Agility Pack)。那应该能够为你执行这种实体替换。