0

我正在尝试从网站获取文本描述并使用此代码

            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;

一切顺利,我将它显示在一个文本块中,但是当我得到的文本有引号“”时问题就来了,那么文本块只会显示 " 而不是“有人知道如何解决这个问题吗?

注意:我尝试使用替换,如代码所示,它不起作用

4

1 回答 1

3

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

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

所以你需要:

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

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

于 2013-11-01T06:52:53.947 回答