2014-03-01 41 views
1

我需要將一些數據放入XML文件。我可以使用XmlSerializer的序列化數據,但我多次寫數據,所以如果我使用的XmlSerializer我得到類似的東西如何在XML中插入數據

<?xml version="1.0" encoding="utf-8"?> 
<Address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <AddressId>0</AddressId> 
    <Country>Test5</Country> 
    <Region>Test5</Region> 
    <Locality>Test5</Locality> 
    <Street>Test5</Street> 
    <HouseNumber>Test5</HouseNumber> 
    <BuildingNumber>Test5</BuildingNumber> 
    <ApartmentNumber>Test5</ApartmentNumber> 
</Address> 

<?xml version="1.0" encoding="utf-8"?> 
<Address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <AddressId>0</AddressId> 
    <Country>Test6</Country> 
    <Region>Test6</Region> 
    <Locality>Test6</Locality> 
    <Street>Test6</Street> 
    <HouseNumber>Test6</HouseNumber> 
    <BuildingNumber>Test6</BuildingNumber> 
    <ApartmentNumber>Test6</ApartmentNumber> 
</Address> 

正如你可以看到我有2個元素(?XML版本=「1.0」 encoding =「utf-8」?>),因爲我在文件中添加信息。我不能使用列表,因爲用戶可以多次添加信息,所以我會得到一個類似的問題,但與List .. 另外我知道Linq To XML,但是,當我嘗試創建一個XML文件時,我得到一個錯誤該Xml文件沒有根元素

 XmlDocument xmlDocument = new XmlDocument(); 
     XElement xmlTree = 
     new XElement("Addresses", 
     new XElement("Address",new XAttribute("Id","1000"),       
     new XElement("Country", address.Country), 
     new XElement("Region", address.Region), 
     new XElement("Locality", address.Locality), 
     new XElement("Street", address.Street), 
     new XElement("HouseNumber", address.HouseNumber), 
     new XElement("BuildingNumber", address.BuildingNumber), 
     new XElement("ApartmentNumber", address.ApartmentNumber) 
     ) 
     ); 
     xmlDocument.Save("MvcApp4.xml"); 

那麼,你推薦我用於我的目標?

回答

3

你沒有你的元素添加到您的文檔,XmlDocument類不屬於LINQ to XML需要XDocument

XDocument xmlDocument = new XDocument(); 
XElement xmlTree = 
     new XElement("Addresses", 
     new XElement("Address", new XAttribute("Id", "1000"), 
     new XElement("Country", address.Country), 
     new XElement("Region", address.Region), 
     new XElement("Locality", address.Locality), 
     new XElement("Street", address.Street), 
     new XElement("HouseNumber", address.HouseNumber), 
      new XElement("BuildingNumber", address.BuildingNumber), 
      new XElement("ApartmentNumber", address.ApartmentNumber) 
     ) 
     ); 
xmlDocument.Add(xmlTree); 
xmlDocument.Save("MvcApp4.xml"); 

或者你可以只保存XElement本身:

xmlTree.Save("MvcApp4.xml");