如何使用aspx页面从数据库写入数据到xml?

时间:2012-10-09 17:16:26

标签: c# asp.net .net xml xmlhttprequest

我有一些从DB获取数据的存储过程。 我制作了一些数据访问层类来从sql db中获取数据 我有一些应该用这些数据填充的Xml文件。 我应该使用aspx页面在它们之间进行链接。 现在,我想知道如何从xml文件中读取aspx页面上的数据以将其发送到服务器,以及如何将数据从db写入xml文件。

我曾经使用过json,但有一种方法可以在不使用json和amp;的情况下发送和接收数据。只是使用XML?

这是我的XML文件:

<allNews>
<news>
    <gNews>
        <flag>List of categories IDs this article linked to</flag>
        <title>news title goes here</title>
        <description>news description goes here</description>
        <date>news date goes here</date>
    </gNews>
</news> 

这是从数据库中检索列表的函数:

XDataContext XDB = new XDataContext();

    public getCategoryContentListResult GetCategoryContentList(int contentID)
    {
        return XDB.getCategoryContentList(contentID).SingleOrDefault<getCategoryContentListResult>();
    }

我想知道如何使用aspx连接这两个文件。

当我使用Json时,我曾经这样做过:[我在javascript文件中读取ajax调用的数据)

        private getCategoryContentListResult GetCategoryList()
        {     
              int ContentID = int.parse(Request.QueryString["country"]);     
              int res = getCategoryContentListResult(ContentID);
              JsonResponse = JsonConvert.SerializeObject(res);
        }
        Response.Clear();
        Response.ContentType = "application/json";
        Response.ContentEncoding = System.Text.Encoding.UTF8;
        Response.Write(Request.QueryString["jsoncallback"] + "(" + JsonResponse + ");");
        Response.End(); 

现在我不能使用Json,我只需要使用XML。那有什么方法可以做到吗?

1 个答案:

答案 0 :(得分:1)

尝试相应地修改以下代码

protected void Page_Load(object sender, EventArgs e)
    {
        XmlTextWriter writer = new XmlTextWriter("your.xml", System.Text.Encoding.UTF8);
        writer.WriteStartDocument(true);
        writer.Formatting = Formatting.Indented;
        writer.Indentation = 2;
        writer.WriteStartElement("AllNews");
        writer.WriteStartElement("News");
        //Loopthrough your dataset/datatable/Or datareader here
        //Call the CreateNode Method from here 
        //End of loop
        writer.WriteEndElement();
        writer.WriteEndElement();
        writer.WriteEndDocument();
        writer.Close();



    }

    private void createNode(string flag, string title, string desc, string date, XmlTextWriter writer)
    {
        writer.WriteStartElement("GNEWS");
        writer.WriteStartElement("flag");
        writer.WriteString(flag);
        writer.WriteEndElement();
        writer.WriteStartElement("title");
        writer.WriteString(title);
        writer.WriteEndElement();
        writer.WriteStartElement("description");
        writer.WriteString(desc);
        writer.WriteStartElement("date");
        writer.WriteString(date);
        writer.WriteEndElement();
        writer.WriteEndElement();
    }

希望这会有所帮助。