//创建一个data.xml
private void CreateXml(string basedir,string id)
{
XmlDocument xmldoc = new XmlDocument();
XmlDeclaration xn = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmldoc.AppendChild(xn);
XmlElement xmlelem = xmldoc.CreateElement("FileList");
//加入另外一个元素
XmlElement xmlelem2 = xmldoc.CreateElement("File");
string time = System.DateTime.UtcNow.Date.ToShortDateString();
xmlelem2.SetAttribute("DateTime", time);
xmlelem.AppendChild(xmlelem2); XmlElement xmlelem3 = xmldoc.CreateElement("Guid");
xmlelem3.InnerText = id;
xmlelem2.AppendChild(xmlelem3);
xmldoc.AppendChild(xmlelem);
xmldoc.Save(basedir + "data.xml");
}我调这个方法时,把数据传进去,总是把以前的数据覆盖掉了....
我想通过if判断,如:
private static void CreateXml(string basedir,string id)
{
XmlDocument xmldoc = new XmlDocument();
if (System.IO.File.Exists(basedir + "data.xml"))
{
xmldoc.Load("data.xml");
XmlNode root = xmldoc.SelectSingleNode("Filelist");
XmlElement el = xmldoc.CreateElement("File");
string time = System.DateTime.UtcNow.Date.ToShortDateString();
el.SetAttribute("DateTime", time); XmlElement eid = xmldoc.CreateElement("Guid");
eid.InnerText = id;
el.AppendChild(eid);
root.AppendChild(el); //这里引发System.NullReferenceException
xmldoc.Save(basedir + "data.xml");
}
else
{
XmlDeclaration xn = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmldoc.AppendChild(xn);
XmlElement xmlelem = xmldoc.CreateElement("FileList");
//加入另外一个元素
XmlElement xmlelem2 = xmldoc.CreateElement("File");
string time = System.DateTime.UtcNow.Date.ToShortDateString();
xmlelem2.SetAttribute("DateTime", time);
xmlelem.AppendChild(xmlelem2); XmlElement xmlelem3 = xmldoc.CreateElement("Guid");
xmlelem3.InnerText = id;
xmlelem2.AppendChild(xmlelem3);
xmldoc.AppendChild(xmlelem);
xmldoc.Save(basedir + "data.xml");
}请高手帮帮忙,如何解决啊??
private void CreateXml(string basedir,string id)
{
XmlDocument xmldoc = new XmlDocument();
XmlDeclaration xn = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmldoc.AppendChild(xn);
XmlElement xmlelem = xmldoc.CreateElement("FileList");
//加入另外一个元素
XmlElement xmlelem2 = xmldoc.CreateElement("File");
string time = System.DateTime.UtcNow.Date.ToShortDateString();
xmlelem2.SetAttribute("DateTime", time);
xmlelem.AppendChild(xmlelem2); XmlElement xmlelem3 = xmldoc.CreateElement("Guid");
xmlelem3.InnerText = id;
xmlelem2.AppendChild(xmlelem3);
xmldoc.AppendChild(xmlelem);
xmldoc.Save(basedir + "data.xml");
}我调这个方法时,把数据传进去,总是把以前的数据覆盖掉了....
我想通过if判断,如:
private static void CreateXml(string basedir,string id)
{
XmlDocument xmldoc = new XmlDocument();
if (System.IO.File.Exists(basedir + "data.xml"))
{
xmldoc.Load("data.xml");
XmlNode root = xmldoc.SelectSingleNode("Filelist");
XmlElement el = xmldoc.CreateElement("File");
string time = System.DateTime.UtcNow.Date.ToShortDateString();
el.SetAttribute("DateTime", time); XmlElement eid = xmldoc.CreateElement("Guid");
eid.InnerText = id;
el.AppendChild(eid);
root.AppendChild(el); //这里引发System.NullReferenceException
xmldoc.Save(basedir + "data.xml");
}
else
{
XmlDeclaration xn = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmldoc.AppendChild(xn);
XmlElement xmlelem = xmldoc.CreateElement("FileList");
//加入另外一个元素
XmlElement xmlelem2 = xmldoc.CreateElement("File");
string time = System.DateTime.UtcNow.Date.ToShortDateString();
xmlelem2.SetAttribute("DateTime", time);
xmlelem.AppendChild(xmlelem2); XmlElement xmlelem3 = xmldoc.CreateElement("Guid");
xmlelem3.InnerText = id;
xmlelem2.AppendChild(xmlelem3);
xmldoc.AppendChild(xmlelem);
xmldoc.Save(basedir + "data.xml");
}请高手帮帮忙,如何解决啊??
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货