C#生成XML字符串(c# xml操作)
用C#生成如下的XML字符串
<?xml version="1.0" encoding="utf-8"?>
<sites>
<site>
<name>有图必应</name>
<url>bing.wilii.cn</url>
</site>
</sites>
实现代码如下:
StringBuilder sb = new StringBuilder();
XmlTextWriter writer = new XmlTextWriter(new StringWriter(sb));
writer.WriteStartDocument();//这句话将生成<?xml version="1.0" encoding="utf-16"?>
writer.WriteStartElement("sites");
writer.WriteStartElement("site");
writer.WriteElementString("name", "有图必应");
writer.WriteElementString("url", "bing.wilii.cn");
writer.WriteEndElement(); // site
writer.WriteEndElement(); // sites
writer.Close();
这段代码有个问题,就是这句代码writer.WriteStartDocument(); 生成的是<?xml version="1.0" encoding="utf-16"?>,而不是我们想要的<?xml version="1.0" encoding="utf-8"?>,网上找了好多代码,尝试了很多,均以失败告终。
最后只能用个折衷的方法解决,反正是字符串,字符串替换一下就搞定了。
sb.ToString().Replace("utf-16", "utf-8");