none
C#操作XML文件 RRS feed

  • 问题

  • 我用XmlDocument来操作xml文件,,现在希望通过一个类创建一个新的节点,我发现序列化只能直接写到文件里面,有没有其它方法可以获得这个类的xml数据?
    2010年6月16日 13:04

答案

  • 你好  通过XmlDocument的CreateElement或者CreateAttribute等方法创建你需要的节点 并且使用XmlNode的方法AppendChild将其添加到指定的父元素;通过XmlDocument.OuterXml可以获得xml的字符串
    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年6月17日 1:17
    版主
  • 额,但是我想的是将一个类的实例变成XML节点,然后利用XmlDocument插入到xml文件中去,所以我需要先获得这个实例的xml表示


    你需要使用一种序列化器 也就是类,序列化器类型很多,最早的XMLSerializer,DataContractSerializer等,选择一个适用的即可。

    先把你的可序列化类型的实例,序列化以后,在使用XmlDocument的Insert方法,把你自己的XML数据插入即可。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    老徐的博客】:http://www.cnblogs.com/frank_xl/

    【WCF中文技术论坛】:微软WCF中文技术论坛
    【WCF英文技术论坛】:微软WCF英文技术论坛

    2010年6月17日 15:57
    版主
  • 你好,

    如果使用XMLSerializer,它会把实例下的所有属性字段都序列化成xml,使用DataContractSerializer可以通过使用DataMember等特性来装饰需要序列化的属性或字段。

    你如果想采用序列化的方式做,那就是操作XML文档和节点了。

    至于去掉说明文字就是看你怎么操作xml节点了,remove掉相应的comment就可以了。

    类都已经序列化成xml格式的了,直接通过根据生成的xml load到xmldocument,然后获得你想要的节点就可以了。


    Microsoft Online Community Support
    2010年6月18日 3:07

全部回复

  • 你好  通过XmlDocument的CreateElement或者CreateAttribute等方法创建你需要的节点 并且使用XmlNode的方法AppendChild将其添加到指定的父元素;通过XmlDocument.OuterXml可以获得xml的字符串
    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年6月17日 1:17
    版主
  • 额,但是我想的是将一个类的实例变成XML节点,然后利用XmlDocument插入到xml文件中去,所以我需要先获得这个实例的xml表示
    2010年6月17日 8:01
  • 额,但是我想的是将一个类的实例变成XML节点,然后利用XmlDocument插入到xml文件中去,所以我需要先获得这个实例的xml表示


    你需要使用一种序列化器 也就是类,序列化器类型很多,最早的XMLSerializer,DataContractSerializer等,选择一个适用的即可。

    先把你的可序列化类型的实例,序列化以后,在使用XmlDocument的Insert方法,把你自己的XML数据插入即可。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    老徐的博客】:http://www.cnblogs.com/frank_xl/

    【WCF中文技术论坛】:微软WCF中文技术论坛
    【WCF英文技术论坛】:微软WCF英文技术论坛

    2010年6月17日 15:57
    版主
  • 额,但是我想的是将一个类的实例变成XML节点,然后利用XmlDocument插入到xml文件中去,所以我需要先获得这个实例的xml表示

    你好按照我刚才的说法获得xml 在Xmldocument实例中创建一个XmlFragment 然后设置其内容为你说的xml节点的xml就可以了
    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年6月18日 0:59
    版主
  • 直接使用XMLSerializer发现它最起码得写在一个流中,而且总是有一行xml的说明文字,怎么去掉这行说明呢?还有怎么讲这个类装换成XmlDocument可用的XmlNode类型或XmlElement类型呢?
    2010年6月18日 2:06
  • 你好,

    如果使用XMLSerializer,它会把实例下的所有属性字段都序列化成xml,使用DataContractSerializer可以通过使用DataMember等特性来装饰需要序列化的属性或字段。

    你如果想采用序列化的方式做,那就是操作XML文档和节点了。

    至于去掉说明文字就是看你怎么操作xml节点了,remove掉相应的comment就可以了。

    类都已经序列化成xml格式的了,直接通过根据生成的xml load到xmldocument,然后获得你想要的节点就可以了。


    Microsoft Online Community Support
    2010年6月18日 3:07