如何删除序列化的xml字符串的xml标记

时间:2014-11-26 19:09:03

标签: c# xml-serialization

我有一个简单的方法,使用C#.Net类将对象列表序列化为XML字符串。对于该方法,我想从生成的XML字符串中删除xml元素。请帮忙。谢谢。

我的方法:

  public static string CreateXML(List<Video> list)
        {
            string result = "";
            StringWriter stringWriter = new StringWriter();
            XmlSerializer s = new XmlSerializer(list.GetType());
            s.Serialize(stringWriter, list);

            result = stringWriter.ToString();

            return result;
        }

结果字符串(我为了简洁而切断)我从那个方法得到:

 <?xml version="1.0" encoding="utf-16" ?> 
 <ArrayOfVideo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <Video>- 
         ....
     </Video>

     <Video>
       ....
     </Video>

  </ArrayOfVideo>

我希望得到一个结果xml字符串,如:(标记已添加<Videos> and </Videos>

<Videos>
    <Video>- 
             ....
         </Video>

         <Video>
           ....
         </Video>
</Videos>

所以,我想删除一行:

<?xml version="1.0" encoding="utf-16" ?> 
<ArrayOfVideo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
</ArrayOfVideo>

1 个答案:

答案 0 :(得分:0)

您可以使用LINQ to XML轻松解析文档并创建一个名为&#34;视频&#34;的新XElement。拥有&#34;视频&#34;加载和解析文档中的元素。这可以通过LINQ to XML以两行完成。

XElement element1 = XElement.Load("Videos.xml");

XElement element2 = new XElement ("Videos", element1.Elements("Video"));