小弟基础比较弱,所以才斗胆来管大家要代码,实在不是懒惰,这个问题小弟查SDK,MSDN,Google 很长时间了,但是总是不会应用……

解决方案 »

  1.   

    顺便把写XML的原码也贴上 :—)using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Xml;
    using System.Configuration;
    using System.Data.OleDb;
    using System.Text;namespace WriteXmlFile
    {
    /// <summary>
    /// createxmlfile 的摘要说明。
    /// </summary>
    public class createxmlfile : System.Web.UI.Page
    {
    public OleDbConnection conn=new OleDbConnection(ConfigurationSettings.AppSettings["conn"]);
    public string b;
    Random a=new Random();
    protected System.Web.UI.WebControls.Button Button1;
    protected System.Web.UI.WebControls.TextBox mytitle;
    protected System.Web.UI.WebControls.TextBox mycontent;
    protected System.Web.UI.WebControls.TextBox cat;
    protected System.Web.UI.WebControls.TextBox fromwhere;
    protected System.Web.UI.WebControls.TextBox image;
    protected System.Web.UI.HtmlControls.HtmlGenericControl output;
    protected System.Web.UI.WebControls.TextBox links;
    protected System.Web.UI.WebControls.TextBox imagealign;
    protected System.Web.UI.WebControls.TextBox catname;
    protected System.Web.UI.WebControls.DropDownList DropDownList1;
    public string cutdot=System.DateTime.Now.ToString().Replace(":","-").Replace(" ","-");
    private void Page_Load(object sender, System.EventArgs e)
    {
    conn.Open();
    if(!IsPostBack)
    {
    ArrayList values=new ArrayList();
    values.Add("main.xsl");
    values.Add("2.xsl");
    values.Add("3.xsl");
    DropDownList1.DataSource=values;
    DropDownList1.DataBind();
    }

    Response.Write(DropDownList1.SelectedItem.Value.ToString());

    }


    public void SubmitBtn_Click(Object sender, EventArgs e)
    {
    StringWriter writer = new StringWriter();
    Console.SetOut(writer);
    createxmlfile myWriteXmlFileSample = new createxmlfile();
    //myWriteXmlFileSample.Run(HttpContext.Current.Server.MapPath(DateTime.Now.ToShortDateString()+"-"+temp+".xml"));
    //string cutdot=DateTime.Now.ToString().Replace(":","-");
    //string cutnsp=cutdot.Replace(" ","-");
    myWriteXmlFileSample.Run(HttpContext.Current.Server.MapPath("data/"+cutdot+".xml"));
    output.InnerHtml = writer.ToString();
        


    /*
    for(int i=0;i<20;i++)
    {
                            string t=Convert.ToInt16(9*a.NextDouble()).ToString();
    b +=t;
    }
    */

    string strSql="INSERT INTO article(cat,realurl,adddate,title,catname) VALUES ('"+HttpContext.Current.Request["cat"].ToString()+"','"+"data/"+cutdot+".xml','"+cutdot+"','"+HttpContext.Current.Request["mytitle"].ToString()+"','"+HttpContext.Current.Request["catname"].ToString()+"')"; //try
    //{
    OleDbCommand mycommand=new OleDbCommand(strSql,conn);
    mycommand.ExecuteNonQuery();
    conn.Close();
    Response.Write("数据库填充完毕");

    //}
    //catch
    //{
    //Response.Write("数据库填充出错");
    //conn.Close();
    //}
    } public void Run(string args)
    {
    XmlTextWriter myXmlTextWriter = null;
    XmlTextReader myXmlTextReader = null;
    //try
    //{

    myXmlTextWriter = new XmlTextWriter (args,Encoding.UTF8); myXmlTextWriter.Formatting = Formatting.Indented;
    myXmlTextWriter.WriteStartDocument(false);
    //string PItext="type='text/xsl' href='main.xsl'";
    myXmlTextWriter.WriteProcessingInstruction("xml-stylesheet","type='text/xsl' href='main.xsl'");
    //myXmlTextWriter.WriteDocType("声明",null,null,null);
    myXmlTextWriter.WriteComment("此站点由Myway_Lau开发 | This Site is Created by Myway_Lau | Email:[email protected]");
    myXmlTextWriter.WriteStartElement("Myway_Lau的站点");
    myXmlTextWriter.WriteStartElement("文章", null);
    myXmlTextWriter.WriteStartElement("标题", null);
    myXmlTextWriter.WriteCData(HttpContext.Current.Request["mytitle"].ToString());
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteStartElement("内容", null);
    myXmlTextWriter.WriteCData(HttpContext.Current.Request["mycontent"].ToString());
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteStartElement("分类", null);
    myXmlTextWriter.WriteCData(HttpContext.Current.Request["cat"].ToString());
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteStartElement("分类名称", null);
    myXmlTextWriter.WriteCData(HttpContext.Current.Request["catname"].ToString());
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteStartElement("来自", null);
    myXmlTextWriter.WriteCData(HttpContext.Current.Request["fromwhere"].ToString());
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteStartElement("相关链接", null);
    myXmlTextWriter.WriteCData(HttpContext.Current.Request["links"].ToString());
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteStartElement("图片", null);
    myXmlTextWriter.WriteCData(HttpContext.Current.Request["image"].ToString());
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteStartElement("图片对齐", null);
    myXmlTextWriter.WriteCData(HttpContext.Current.Request["imagealign"].ToString());
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteStartElement("录入时间", null);
    myXmlTextWriter.WriteCData(cutdot);
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteStartElement("评论地址", null);
    myXmlTextWriter.WriteCData(cutdot+".xml");
    myXmlTextWriter.WriteEndElement();
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// myXmlTextWriter.WriteStartElement("样式表", null);
    myXmlTextWriter.WriteCData(DropDownList1.SelectedItem.Text);
    myXmlTextWriter.WriteEndElement();/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////问题就出在这两个注释行之间……
    这样在这里面接收不到SelectItem.Text值……

    //myXmlTextWriter.WriteElementString("来自", HttpContext.Current.Request["fromwhere"].ToString());
    //myXmlTextWriter.WriteElementString("图片", HttpContext.Current.Request["image"].ToString());
    //myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteEndElement();
    myXmlTextWriter.WriteEndElement(); //向文件写 XML 并关闭编写器
    myXmlTextWriter.Flush();
    myXmlTextWriter.Close();

    //}
    //catch (Exception e)
    //{
    //Console.WriteLine ("异常:{0}", e.ToString());
    //} //finally
    //{
    //Console.WriteLine("<br/>");
    Console.WriteLine("<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>对文件 <a href='{0}'>{0} </a>的处理已完成。", args);
    if (myXmlTextReader != null)
    myXmlTextReader.Close();
    //关闭编写器
    if (myXmlTextWriter != null)
    myXmlTextWriter.Close();

    //}
    }




    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void TextBox2_TextChanged(object sender, System.EventArgs e)
    {

    }
    }}
      

  2.   

    我想你的困惑可能跟我以前遇到的一样,其实只有一个要点:
    你先把要添加的节点内容添加好,然后插入的时候用下面这句就行了:
    xdOpen.SelectSingleNode(sbPath.ToString()).AppendChild(xeNewss);
    sbPath就是指向文章节点的Xpath,xeNewss就是你自己写好的评论节点
      

  3.   

    同意楼上,但也可以用dataset读入XML文件后当数据库操作,加入新列后,写入值,然后写回XML文件,就可以了.
      

  4.   

    顶一下,上午查阅了一些资料
    private void Page_Load(object sender, System.EventArgs e)
    {
    XmlDocument mydoc=new XmlDocument();
    mydoc.Load("data/2093251.XML");
    mydoc.SelectSingleNode("文章").AppendChild(???);
    Response.Write("ok");我想把评论的内容(Html中textarea提交的内容)当做AppendChild的<评论><![CDATA[写的评论]]></评论>谢谢
      

  5.   

    查了MSDN的例子,终于找到了代码,调试了一下,成功,现把代码奉上,愿与我一样的困惑者能够调试成功using System;
    using System.IO;
    using System.Xml;public class Sample 
    { public static void Main() 
    { XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
    "<title>Pride And Prejudice</title>" +
    "</book>"); XmlNode root = doc.DocumentElement; //Create a new node.
    XmlElement elem = doc.CreateElement("price");
    elem.InnerText="19.95"; //Add the node to the document.
    root.AppendChild(elem); Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out); }
    }