0

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

我曾经使用过 json,但是有没有一种方法可以在不使用 json 而只使用 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。那么有什么方法可以做到吗?

4

1 回答 1

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();
    }

希望这会有所帮助。

于 2012-11-06T05:31:44.120 回答