首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将此XML反序列化为有用的数据结构?

如何将此XML反序列化为有用的数据结构?
EN

Stack Overflow用户
提问于 2011-09-15 08:04:05
回答 2查看 464关注 0票数 1

我使用的是作为"saml断言“返回给我的收据格式。这是一种已知且定义良好的格式,但在我当前的平台上,我无法访问可以将xml反序列化为原始类的库。

我已经决定可能需要使用自己的类,但是考虑到xml的格式,我真的不知道C#类是什么样子,也不知道将其反序列化所需的定义和技巧。

我们的目标是从收据中创建一个我可以检查的C#对象列表。我希望在Name节点和id中保留格式的值。此外,使这一点具有挑战性的部分原因是语句由主题和属性元素组成。我想问这个列表的一个问题是,这个列表是否包含一个断言,该断言的属性节点"Gamma“的值为999。

格式如下:

代码语言:javascript
运行
复制
<Assertion>
<Statement>
    <Subject>
        <Name Format="http://name.com/123/45/ProductName" Id="123">123456</Name>
    </Subject>
    <Attribute Name="Alpha">
        <Value>111</Value>
    </Attribute>
    <Attribute Name="Gamma">
        <Value>22</Value>
    </Attribute>
    ...
    <Attribute Name="Delta">
        <Value>3</Value>
    </Attribute>
</Statement>
</Assertion>
EN

回答 2

Stack Overflow用户

发布于 2011-09-15 08:08:28

您可以使用XML Schema Definition Tool (Xsd.exe)来启动您的类结构。

这里有一篇由Yogesh Joshi撰写的很棒的博客文章,介绍了整个过程:http://blogs.msdn.com/b/yojoshi/archive/2011/05/14/xml-serialization-and-deserialization-entity-classes-with-xsd-exe.aspx

票数 1
EN

Stack Overflow用户

发布于 2011-09-15 08:22:48

正如Kon在评论中所说,属性节点应该包装在容器元素中。我还没有找到任何好的方法来反序列化包含其他元素(或属性)的列表。您可能会被迫让您的类实现IXmlSerializable并编写更多内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7424435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档