2012-01-27 93 views

回答

1

我使用LINQ到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; 
     } 

在電話另一

上述方法
 /// <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 
     } 

對於子元素創建

 /// <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; 
     } 

CreateRoomIncomingMemberXElement方法中,您將根據您的要求創建您自己的子元素,您將在AddMemberNodeToRoomMembersXMLWithGivenModelHesapAdiAndUyeHesapAdi中調用它並將其添加到加載的文件中,然後保存它。

1

您可以使用the XDocument class輕鬆地操縱在C#XML:

var doc = XDocument.Parse(yourXmlString); // Or XDocument.Load(pathToFile); 
var childElement = new XElement("YourChildElementName", yourChildElementValue); 
doc.Add(childElement); 
2

簡單:

  • 加載XML到內存
  • 查找電子xisting要追加
  • 創建新元素
  • 呼叫類似XNode.AddAfterSelf
  • 保存結果

確切的通話將取決於您所使用的庫節點;我個人建議使用LINQ to XML(如果你使用的是.NET 3.5或更高版本),因爲它比以前的API更容易使用。

相關問題