读书人

程序写入XML 如何对amp;进行转义 急救救

发布时间: 2013-07-04 11:45:55 作者: rapoo

程序写入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.CreateElement("NewDataSet");
dom.AppendChild(rootTemp);


dom.Save(strTemp);
}
dom.LoadXml(xml);
dom.Save("result.xml");



只做参考。
[解决办法]
以前碰到过这个问题,先加密再解密即可
[解决办法]
先转成固定的字符串也行 再转回来
[解决办法]
&改回&,再写入XML不成吗。
也就是把原字符串转换为HTML字符,再写入XML

读书人网 >asp.net

热点推荐