结构是这样的<?xml version="1.0" encoding="utf-8"?>
<URL>
<Image_Information>
<img_name>�sss�</img_name>
<img_link>#</img_link>
<thumb_image>njimg/gb_02.jpg</thumb_image>
</Image_Information>
</URL>
插入代码

数据是根据datatbale中的数据来的,设置了断点,datatable中有值,但是无法插入到xml中,没有提示错误信息,帮吗看下谢谢
 public void xmlz(DataTable dt)
    {
        XmlDocument xmdoc = new XmlDocument();//实例xml
        xmdoc.Load(Server.MapPath("njimg/imglink.xml"));//找到xml文件
        XmlNodeList xlist = xmdoc.SelectNodes("URL/Image_Information");
        //for (int a = 0; a <= xlist.Count; a++)//循环的删除xml中的数据
        //{
        //    XmlNode xmlNode = xlist.Item(a);
        //    xmlNode.ParentNode.RemoveChild(xmlNode);
        //}
        //xmdoc.Save(Server.MapPath("anlimg/imglink.xml"));//删除后保存
        XmlElement Image_Information; //创建一个新节点
        XmlElement lenm; //创建Image_Information下的节点
        XmlElement lelk ;
        XmlElement leimage;
            foreach ( DataRow drtd in dt.Rows )
            {
                //
                Image_Information = xmdoc.CreateElement("Image_Information");
                lenm = xmdoc.CreateElement("img_name");
                lelk = xmdoc.CreateElement("img_link");
                leimage = xmdoc.CreateElement("thumb_image");
                //得到值
                lenm.InnerText =drtd["nm"].ToString();
                lelk.InnerText = "#";
                leimage.InnerText = drtd["imgurl"].ToString();
                //Image_Information下的节点添加到Image_Information下
                Image_Information.AppendChild(lenm);
                Image_Information.AppendChild(lelk);
                Image_Information.AppendChild(leimage);
                //将Image_Information加入到xml中
                xmdoc.DocumentElement.AppendChild(Image_Information);
                xmdoc.Save(Server.MapPath("anlimg/imglink.xml"));//新增后保存
            }
                }

解决方案 »

  1.   

    把System.IO.FileInfo ifReadyonly=new FileInfo("xml物理路径");
    ifReadyonly.isReadyOnly=false; 把文件只读权限 设为false 就搞定你的问题了 我以前一遇到过 是你的文件没有可写权限造成的 这样就可以了 加分吧 哈哈哈
      

  2.   

    public static void Insert(string path, string node, string element, string attribute, string value)
            {
                try
                {
                    XmlDocument doc = new XmlDocument();
                    doc.Load(path);
                    XmlNode xn = doc.SelectSingleNode(node);
                    if (element.Equals(""))
                    {
                        if (!attribute.Equals(""))
                        {
                            XmlElement xe = (XmlElement)xn;
                            xe.SetAttribute(attribute, value);
                        }
                    }
                    else
                    {
                        XmlElement xe = doc.CreateElement(element);
                        if (attribute.Equals(""))
                        {
                            xe.InnerText = value;
                        }
                        else
                        {
                            xe.SetAttribute(attribute, value);
                        }
                        xn.AppendChild(xe);
                    }
                    doc.Save(path);
                }
                catch { }
            }
    F11单步
      

  3.   

     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string path = "Image.xml";
                DataTable dt = getDataTable();
                XmlDocument xml = new XmlDocument();
                xml.Load(Server.MapPath(path));
                XmlNode xmlnode = xml.SelectSingleNode("url");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    XmlElement element = xml.CreateElement("Image_Information");
                    XmlElement ele1 = xml.CreateElement("img_name");
                    ele1.InnerText = dt.Rows[i]["Name"].ToString();
                    element.AppendChild(ele1);
                    XmlElement ele2 = xml.CreateElement("img_id");
                    ele2.InnerText = dt.Rows[i]["ID"].ToString();
                    element.AppendChild(ele2);
                    xmlnode.AppendChild(element);
                }
                xml.Save(Server.MapPath(path));
            }
        }
        public DataTable getDataTable()
        { 
            string[] name = {"zhangsan","lisi","wangwu"};
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(System.Int32));
            dt.Columns.Add("Name", typeof(System.String));
            for (int i = 0; i < name.Length; i++)
            {
                DataRow row = dt.NewRow();
                row[0] = i;
                row[1] = name[i];
                dt.Rows.Add(row);
            }
            return dt;
        }
    /*
    结果:
    <?xml version="1.0" encoding="utf-8"?>
    <url>
      <Image_Information>
        <img_name>zhangsan</img_name>
        <img_id>0</img_id>
      </Image_Information>
      <Image_Information>
        <img_name>lisi</img_name>
        <img_id>1</img_id>
      </Image_Information>
      <Image_Information>
        <img_name>wangwu</img_name>
        <img_id>2</img_id>
      </Image_Information>
    </url>
    */