日期:2014-05-17  浏览次数:20408 次

程序写入XML 怎么对&进行转义 急急急救救救
 XElement xea = new XElement("siteMapNode");
                xea.SetAttributeValue("url", "DetailContent.aspx?Id=" + ds.Tables[0].Rows[i]["CategoryId"].ToString() + "&AId=" + ds.Tables[0].Rows[i]["Id"].ToString());
                xea.SetAttributeValue("title", "正文");
                xea.SetAttributeValue("description", "正文");
                xes.Add(xea);

&写入XML 就变成&
<![CDATA[&]>也不行

------解决方案--------------------
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:

严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。
------解决方案--------------------
有一个方法非常实用。
DataSet ds = new DataSet();
ds.Tables.Add(dt.Copy());
string xml = ds.GetXml();
将你的表格先填充到数据集DataSet,然后转成xml格式,最好保存。
XmlDocument dom = new XmlDocument();
                    if (xml == "")
                    {
                        xml = "<NewDataSet></NewDataSet>";
                    }
                    string strTemp = System.Windows.Forms.Application.StartupPath + "\\result.xml";
                    if (File.Exists(strTemp))
                    {
                        File.Delete(strTemp);
                    }    
                    //不存在文件则创建
                    if (File.Exists(strTemp))
                    {
                        XmlElement rootTemp = dom.CreateEleme