【问题标题】:How insert data in XML如何在 XML 中插入数据
【发布时间】:2014-03-01 16:54:14
【问题描述】:

我需要将一些数据放入 XML 文件中。我可以使用 XmlSerializer 来序列化数据,但我应该多次写入数据,所以如果我使用 XmlSerializer 我会得到类似的结果

 <?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 version="1.0" encoding="utf-8"?>),因为我在文件中添加了信息。我不能使用列表,因为用户可以多次添加信息,所以我会遇到类似的问题,但使用列表.. 我也知道 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");

那么,你建议我用什么来实现我的目标?

【问题讨论】:

    标签: c# linq-to-xml


    【解决方案1】:

    你没有将你的元素添加到你的文档中,并且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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-20
      • 2019-08-28
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多