C# 如何在现有XML中添加子元素

C# 如何在现有XML中添加子元素,c#,xml,C#,Xml,我有一个问题,我想在现有的Xml中添加子元素,我如何才能做到这一点 请帮助我您可以使用它在C#中轻松操作Xml: 可以使用在C#中轻松操作Xml: 简单: 将XML加载到内存中 查找要附加的现有节点 创建新元素 打电话给 保存结果 确切的调用将取决于您使用的库;就个人而言,我建议尽可能使用(即,如果您使用的是.NET 3.5或更高版本),因为它比早期的API更易于使用。简单: 将XML加载到内存中 查找要附加的现有节点 创建新元素 打电话给 保存结果 确切的调用将取决于您使用的库;就个人

我有一个问题,我想在现有的Xml中添加子元素,我如何才能做到这一点 请帮助我

您可以使用它在C#中轻松操作Xml:

可以使用在C#中轻松操作Xml:

简单:

  • 将XML加载到内存中
  • 查找要附加的现有节点
  • 创建新元素
  • 打电话给
  • 保存结果
确切的调用将取决于您使用的库;就个人而言,我建议尽可能使用(即,如果您使用的是.NET 3.5或更高版本),因为它比早期的API更易于使用。

简单:

  • 将XML加载到内存中
  • 查找要附加的现有节点
  • 创建新元素
  • 打电话给
  • 保存结果

确切的调用将取决于您使用的库;就个人而言,我建议尽可能使用(即,如果您使用的是.NET 3.5或更高版本),因为它比早期的API更容易使用。

我使用的是LINQ to XML,这对我来说似乎更容易,我就是这样做的

首先加载它

        /// <summary>
        /// loads and returns the XML file with the given name
        /// </summary>
        /// <param name="modelHesapAdi"> name of the XML file to be returned</param>
        /// <returns>returns the xml of given model hesap adı</returns>
        public static XElement LoadXMLWithGivenModelHesapAdi(string modelHesapAdi, string xmlDirectory)
        {
            XElement modelsXmlFile = XElement.Load(xmlDirectory + modelHesapAdi + ".xml");

            return modelsXmlFile;
        }
//
///加载并返回具有给定名称的XML文件
/// 
///要返回的XML文件的名称
///返回给定模型hesap adı的xml
公共静态XElement LoadXMLWithGivenModelHesapAdi(字符串模型HeSaPadi,字符串xmlDirectory)
{
XElement modelsXmlFile=XElement.Load(xmlDirectory+modelHesapAdi+“.xml”);
返回modelsxml文件;
}
在另一个方法中调用上述方法

        /// <summary>
        /// gets a roommessage nood from CreateRoomMessageXElement
        /// and adds it to the related room XML file and saves it
        /// </summary>
        /// <param name="modelHesapAdi">a string which has the name of the XML file to be changed</param>
        /// <param name="incomingMemberHesapAdi">a string to be inserted to the xml file, which has the members name</param>
        /// <param name="entranceTime"> a string for time, holds the member's entrance time</param>
        public void AddMemberNodeToRoomMembersXMLWithGivenModelHesapAdiAndUyeHesapAdi(string modelHesapAdi, 
                                                                                      string incomingMemberHesapAdi,
                                                                                      string entranceTime)
        {
            XElement modelsXmlFile = BAL.Models.Model.LoadXMLWithGivenModelHesapAdi(modelHesapAdi, xmlDirectory);//loads the xml
            XElement roomMember = CreateRoomIncomingMemberXElement(incomingMemberHesapAdi, entranceTime);//creates child element and returns it
            modelsXmlFile.Add(roomMember);//adds the child element
            modelsXmlFile.Save(xmlDirectory + modelHesapAdi + ".xml");//saves the edited file
        }
//
///从CreateRoomMessageXElement获取RoomMessageNood
///并将其添加到相关的文件室XML文件中并保存
/// 
///具有要更改的XML文件名称的字符串
///要插入到xml文件的字符串,该文件具有成员名称
///表示时间的字符串,用于保存成员的进入时间
public void addmembernodetoroommembersxml与给定的模型hesapadianduyehesapadi(字符串模型hesapadi,
字符串incomingMemberHesapAdi,
字符串输入时间)
{
XElement modelsXmlFile=BAL.Models.Model.LoadXMLWithGivenModelHesapAdi(modelHesapAdi,xmlDirectory);//加载xml
XElement roomMember=CreateRoomIncomingMemberXElement(incomingMemberHesapAdi,入口时间);//创建子元素并返回它
modelsXmlFile.Add(roomMember);//添加子元素
modelsXmlFile.Save(xmlDirectory+modelHesapAdi+“.xml”);//保存编辑过的文件
}
用于创建子元素

        /// <summary>
        /// creates and returns roommessage nood
        /// </summary>
        /// <param name="memberHesapAdi">the sender of the message</param>
        /// <param name="message">sent message</param>
        /// <param name="timeSent">the time when the message was sent</param>
        /// <returns></returns>
        private XElement CreateRoomIncomingMemberXElement(string memberHesapAdi, string entranceTime)
        {
            XElement roomMessage = new XElement("RoomMember",
                                                            new XElement("MemberHesapAdi", memberHesapAdi),
                                                            new XElement("Time", entranceTime));
            return roomMessage;
        }
//
///创建并返回roommessage nood
/// 
///消息的发送者
///发送消息
///发送消息的时间
/// 
私有XElement CreateRoomIncomingMemberXElement(字符串成员SESAPADI,字符串入口时间)
{
XElement roomMessage=新XElement(“RoomMember”,
新XElement(“MemberHesapAdi”,MemberHesapAdi),
新元素(“时间”,入口时间);
返回消息;
}

CreateRoomIncomingMemberXElement
方法中,您将根据自己的需求创建自己的子元素,您将在
AddMemberNodeToRoomMembersXMLWithGivenModelHesapAdiAndUyeHesapAdi>中调用它,并将其添加到加载的文件中,然后保存它。

我正在使用LINQ to XML,这对我来说似乎更容易,我就是这样做的

首先加载它

        /// <summary>
        /// loads and returns the XML file with the given name
        /// </summary>
        /// <param name="modelHesapAdi"> name of the XML file to be returned</param>
        /// <returns>returns the xml of given model hesap adı</returns>
        public static XElement LoadXMLWithGivenModelHesapAdi(string modelHesapAdi, string xmlDirectory)
        {
            XElement modelsXmlFile = XElement.Load(xmlDirectory + modelHesapAdi + ".xml");

            return modelsXmlFile;
        }
//
///加载并返回具有给定名称的XML文件
/// 
///要返回的XML文件的名称
///返回给定模型hesap adı的xml
公共静态XElement LoadXMLWithGivenModelHesapAdi(字符串模型HeSaPadi,字符串xmlDirectory)
{
XElement modelsXmlFile=XElement.Load(xmlDirectory+modelHesapAdi+“.xml”);
返回modelsxml文件;
}
在另一个方法中调用上述方法

        /// <summary>
        /// gets a roommessage nood from CreateRoomMessageXElement
        /// and adds it to the related room XML file and saves it
        /// </summary>
        /// <param name="modelHesapAdi">a string which has the name of the XML file to be changed</param>
        /// <param name="incomingMemberHesapAdi">a string to be inserted to the xml file, which has the members name</param>
        /// <param name="entranceTime"> a string for time, holds the member's entrance time</param>
        public void AddMemberNodeToRoomMembersXMLWithGivenModelHesapAdiAndUyeHesapAdi(string modelHesapAdi, 
                                                                                      string incomingMemberHesapAdi,
                                                                                      string entranceTime)
        {
            XElement modelsXmlFile = BAL.Models.Model.LoadXMLWithGivenModelHesapAdi(modelHesapAdi, xmlDirectory);//loads the xml
            XElement roomMember = CreateRoomIncomingMemberXElement(incomingMemberHesapAdi, entranceTime);//creates child element and returns it
            modelsXmlFile.Add(roomMember);//adds the child element
            modelsXmlFile.Save(xmlDirectory + modelHesapAdi + ".xml");//saves the edited file
        }
//
///从CreateRoomMessageXElement获取RoomMessageNood
///并将其添加到相关的文件室XML文件中并保存
/// 
///具有要更改的XML文件名称的字符串
///要插入到xml文件的字符串,该文件具有成员名称
///表示时间的字符串,用于保存成员的进入时间
public void addmembernodetoroommembersxml与给定的模型hesapadianduyehesapadi(字符串模型hesapadi,
字符串incomingMemberHesapAdi,
字符串输入时间)
{
XElement modelsXmlFile=BAL.Models.Model.LoadXMLWithGivenModelHesapAdi(modelHesapAdi,xmlDirectory);//加载xml
XElement roomMember=CreateRoomIncomingMemberXElement(incomingMemberHesapAdi,入口时间);//创建子元素并返回它
modelsXmlFile.Add(roomMember);//添加子元素
modelsXmlFile.Save(xmlDirectory+modelHesapAdi+“.xml”);//保存编辑过的文件
}
用于创建子元素

        /// <summary>
        /// creates and returns roommessage nood
        /// </summary>
        /// <param name="memberHesapAdi">the sender of the message</param>
        /// <param name="message">sent message</param>
        /// <param name="timeSent">the time when the message was sent</param>
        /// <returns></returns>
        private XElement CreateRoomIncomingMemberXElement(string memberHesapAdi, string entranceTime)
        {
            XElement roomMessage = new XElement("RoomMember",
                                                            new XElement("MemberHesapAdi", memberHesapAdi),
                                                            new XElement("Time", entranceTime));
            return roomMessage;
        }
//
///创建并返回roommessage nood
/// 
///消息的发送者
///发送消息
///发送消息的时间
/// 
私有XElement CreateRoomIncomingMemberXElement(字符串成员SESAPADI,字符串入口时间)
{
XElement roomMessage=新XElement(“RoomMember”,