在asp.net中使用xdocument更新xml

时间:2013-06-18 16:51:12

标签: c# asp.net xml linq-to-xml

我正在尝试使用XDocument更新一个简单的xml文件。这是我的简单xml文件

<?xml version="1.0" encoding="utf-8" ?>
<message>Test test test test</message>

上面的xml。

当用户单击Button1时,它会读取xml并将其显示在屏幕上。但是当你点击Button2时,它不会更新xml。

public partial class www_html_test : System.Web.UI.Page
{
XDocument doc;
XElement elem;

protected void Page_Load(object sender, EventArgs e)
{
    doc = XDocument.Load(Server.MapPath("xml/test.xml"));
    elem = doc.Element("message");
}
protected void Button1_Click(object sender, EventArgs e)
{
    try{

        Label1.Text = elem.Value.ToString();
    } catch(Exception ex){
        Label1.Text = ex.Message;
    }
}
protected void Button2_Click(object sender, EventArgs e)
{
    try{
        elem.Value = "test 2 test 2 test 2";
    }
    catch (Exception ex)
    {
        Label1.Text = ex.Message;
    }
}
}

如何更新xml?

2 个答案:

答案 0 :(得分:1)

您需要致电doc.Save(Server.MapPath("xml/test.xml"))

在您更改elem值时,它仅在内存中。要提交到磁盘,您必须保存。

答案 1 :(得分:1)

将按钮2单击事件处理程序更改为

    protected void Button2_Click(object sender, EventArgs e)
    {
        try{
            elem.Value = "test 2 test 2 test 2";
            doc.Save(Server.MapPath("xml/test.xml"));
        }
        catch (Exception ex)
        {
            Label1.Text = ex.Message;
        }
     }