代码之家  ›  专栏  ›  技术社区  ›  Davita

如何反序列化此XML?

  •  0
  • Davita  · 技术社区  · 15 年前

    我有以下要反序列化到对象中的XML。我用C。

        <?xml version = '1.0' encoding = 'windows-1251'?>
        <RootElement>
          <AnotherRoot>
            <parameter name="param1">
              <value>"12"</value>
            </parameter>
            <parameter name="param2">
              <value>"John"</value>
            </parameter>
          </AnotherRoot>
        </RootElement>
    

    有什么想法吗?

    4 回复  |  直到 15 年前
        1
  •  2
  •   Pieter Germishuys    15 年前

    您可以选择以下选项

    1. 将XML保存为文件
    2. 使用Visual Studio的XML工具或位于Start->Programs->Visual Studio 2008/2010->Visual Studio Tools->*命令行中的Visual Studio命令行生成XML中的XSD。
    3. 使用save xsd.exe生成可序列化类,但现在在.xsd上使用/c参数
    4. 在解决方案中包含生成的代码
    5. 在你的代码里

      xmlserializer serializer=新的xmlserializer(typeof(yourRoteElement)); YourRoteElement DeserializedObject=(YourRoteElement)序列化程序。Deserialize(file.open(YourXmlFileLocation);

    现在您可以用一种熟悉的面向对象的C方式来处理它。

        2
  •  2
  •   Gideon    15 年前

    如果您使用.NET 4,您可以使用 dynamic 路线。请参见以下示例:
    http://blogs.msdn.com/b/mcsuksoldev/archive/2010/02/04/dynamic-xml-reader-with-c-and-net-4-0.aspx

        3
  •  0
  •   Oded    15 年前

    您需要一个类来反序列化它。

    这个类的外观以及它与XML的关系 需要做出决定。

    看看 DataContractSerializer 以及不同的属性( DataContractAttribute DataMemberAttribute )它用于序列化/反序列化。

        4
  •  0
  •   Carson63000    15 年前

    读一读 http://www.diaryofaninja.com/blog/2010/05/07/make-your-xml-stronglytyped-because-you-can-and-its-easy 了解如何使用 xsd.exe 从XML文件生成一个模式定义,然后从中生成一个类,您可以轻松地将其反序列化为。