还是关于向XML文件中添加记录的问题
我从XML文件中读取内容实现页面上的菜单项,XML文件如下(有点复杂):
<MenuData ImagesBaseURL="images/">
<MenuGroup>
<MenuItem Label="File">
<MenuGroup ExpandOffsetY="1" ExpandOffsetX="-1">
<MenuItem Label="New" ID="i_New" URLTarget="_blank" />
<MenuItem Label="Open" RightIcon="arrow_white.gif" RightIconWidth="15">
<MenuGroup>
<MenuItem Label="File" ID="i_File"/>
<MenuItem Label="File From Web" ID="i_FileWeb"/>
</MenuGroup>
</MenuItem>
<MenuItem Label="Save" ID="i_Save"/>
<MenuItem Label="Save As..." ID="i_SaveAs"/>
</MenuGroup>
</MenuItem>
<MenuItem Label="Edit">
<MenuGroup ExpandOffsetY="1" ExpandOffsetX="-1">
<MenuItem Label="Cut" ID="i_Cut"/>
<MenuItem Label="Copy" ID="i_Copy"/>
<MenuItem Label="Paste" ID="i_Paste"/>
<MenuItem Label="IntelliSense" RightIcon="arrow_white.gif" RightIconWidth="15">
<MenuGroup>
<MenuItem Label="List Members" ID="i_List"/>
<MenuItem Label="Parameter Info" ID="i_Info"/>
<MenuItem Label="Complete Word" ID="i_Complete"/>
</MenuGroup>
</MenuItem>
</MenuGroup>
</MenuItem>
<MenuItem Label="View">
<MenuGroup ExpandOffsetY="1" ExpandOffsetX="-1">
<MenuItem Label="Stop" ID="i_Stop"/>
<MenuItem Label="Refresh" ID="i_Refresh"/>
<MenuItem Label="Privacy Report..." ID="i_Privacy"/>
<MenuItem Label="Full Screen" ID="i_FullScreen"/>
</MenuGroup>
</MenuItem>
<MenuItem Label="Tools">
<MenuGroup ExpandOffsetY="1" ExpandOffsetX="-1">
<MenuItem Label="Mail and News" ID="i_Mail"/>
<MenuItem Label="Synchronize..." ID="i_Sync"/>
<MenuItem Label="Windows Update" ID="i_Update"/>
<MenuItem Label="Internet Options..." ID="i_Options"/>
</MenuGroup>
</MenuItem>
<MenuItem Label="Mail and News" ID="X_Mail"/>
<MenuItem Label="Synchronize..." ID="X_Sync"/>
<MenuItem Label="Windows Update" ID="X_Update"/>
<MenuItem Label="Internet Options..." ID="X_Options"/>
</MenuGroup>
</MenuData>
请问我该如何将这个XML的内容读出,再加入一个新的菜单项到指定的节点,高手救我,最后50分了,答出来明天再加!
我是这样写的:
public void Submit_Click(Object sender, EventArgs e)
{
//保存数据的XML文件的路径
//如果你的路径和下面的不同,则请修改之
string dataFile = "MenuData.xml" ;
//运用一个Try-Catch块完成信息添加功能
try
{
//仅当页面是有效的时候才处理它
if(Page.IsValid)
{
errmess.Text="" ;
//以读的模式打开一个FileStream来访问XML
FileStream fin;
fin= new FileStream(Server.MapPath(dataFile),FileMode.Open,
FileAccess.Read,FileShare.ReadWrite);
//建立一个数据库对象
DataSet guestData = new DataSet();
//仅从数据库读取XML Schema
///////此处出错
guestData.ReadXml(fin);
fin.Close();
//从数据集的Schema新建一个数据行
DataRow newRow = guestData.Tables[0].NewRow();
//用相应值填写数据行
newRow["Name"]=TextBox1.Text;
//填写完毕,将数据行添加到数据集
guestData.Tables[0].Rows.Add(newRow);
//为数据库文件新建另一个写模式的FileStream,并保存文件
FileStream fout ;
fout = new FileStream(Server.MapPath(dataFile),FileMode.Open,
FileAccess.Write,FileShare.ReadWrite);
guestData.WriteXml(fout, XmlWriteMode.WriteSchema);
fout.Close();
//隐藏当前的面板
//formPanel.Visible=false;
//显示带有感谢信息的面板
//thankPanel.Visible=true;
}
}
catch (Exception edd)
{
//捕捉异常
errmess.Text="写入XML文件出错,原因:"+edd.ToString() ;
}
}
但在读取的时候就出错了,大虾们救命啊!!