好吧,我问这个真的很蠢。我看到许多其他问题与我的问题相似,但似乎没有人能够回答。
我正在为一个对语法非常挑剔的程序创建一个xml文件。很遗憾,我是从头开始制作xml文件的。意思是,我把每一行单独放进去(很多file.writeline(string))。
我知道这很难看,但这是我唯一能搞清楚逻辑的方法。
无论如何。我有几根弦,里面有&。
if (value.Contains("&"))
{
value.Replace("&", "&");
}
似乎不起作用。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 < a > string &
everything will get encoded</someString>