c# - 在 C# 中将 & 替换为 &

标签 c# string

好吧,我觉得问这个真的很愚蠢。我看到很多其他问题与我的问题类似,但似乎没有一个能够回答。

我正在为一个对语法非常挑剔的程序创建一个 xml 文件。遗憾的是我正在从头开始制作 XML 文件。意思是,我将每一行单独放置(很多 file.WriteLine(String))。

我知道这很丑陋,但这是让逻辑可行的唯一方法。

无论如何。我有一些字符串,其中包含“&”。

if (value.Contains("&"))
   {
      value.Replace("&", "&");
   }

好像不行。 value.Contains() 似乎看到了,但替换不起作用。我正在使用 C# .Net 2.0 sp2。对比 2005。

请帮帮我..这是漫长的一周..

最佳答案

如果你真的想走那条路,你必须将 Replace 的结果(该方法返回一个新的字符串,因为字符串是不可变的)返回给变量:

value = value.Replace("&", "&");

不过,我建议重新考虑您编写 XML 的方式。如果您切换到使用 XmlTextWriter ,它将为您处理所有编码(不仅是&符号,还有所有其他需要编码的字符):

using(var writer = new XmlTextWriter(@"C:\MyXmlFile.xml", null))
{
    writer.WriteStartElement("someString");
    writer.WriteText("This is < a > string & everything will get encoded");
    writer.WriteEndElement();
}

应该产生:

<someString>This is &lt; a &gt; string &amp; 
    everything will get encoded</someString>

关于c# - 在 C# 中将 & 替换为 &,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3834217/

相关文章:

c# - 如何使用数据库中的值填充数据表

java - 如何将这个程序中的第一个字母大写

string - 在 Bash 中获取文件的扩展名

java - 如何将字符串转换为数组/对象/列表

c# - 工具提示不会显示第二次创建表单

c# - customErrors 与自定义模块

c# - 使用 key 保管库中的证书创建 Azure Web 应用 SSL 绑定(bind)

c++ - 比较 C++ char* 字符以解析 .OBJ 文件

c - realloc 似乎没有重新分配内存

c# - 如何从一个对象中删除多个项目,该对象是另一个对象的副本,而不影响派生的对象?