c# - 关于 .net 中 XML 反序列化的问题

标签 c# .net xml-deserialization

我正在尝试反序列化来自 Web 服务的 XML,但我不知道如何告诉序列化程序如何处理这段 xml:

<Movimientos>
<Movimientos>
<NOM_ASOC>pI22E7P30KWB9KeUnI+JlMRBr7biS0JOJKo1JLJCy2ucI7n3MTFWkY5DhHyoPrWs</NOM_ASOC>
<FEC1>RZq60KwjWAYPG269X4r9lRZrjbQo8eRqIOmE8qa5p/0=</FEC1>
<IDENT_CLIE>IYbofEiD+wOCJ+ujYTUxgsWJTnGfVU+jcQyhzgQralM=</IDENT_CLIE>
</Movimientos>
<Movimientos>

如您所见,子标签使用与其父标签相同的标签,我想这是错误的,但是网络服务是由外部公司提供的并且不会更改它,是否有任何方法或任何库来整理 XML或者我如何在我的类上使用一个属性,以便序列化程序正确处理?感谢您的帮助。

最佳答案

序列化程序应该没问题 - 问题可能只是类不能具有与类本身同名的属性。所以使用 XmlElementAttribute 来匹配它:

[XmlRoot("Movimientos")]
public class Movimientos
{
    [XmlElement("Movimientos")]
    public SomeOtherClass SomeOtherProperty { get; set; }
}

public class SomeOtherClass
{
    public string NOM_ASOC { get; set; }
    public string FEC1 { get; set; }
    public string IDENT_CLIE { get; set; }
}

仅供引用,XML 实际上没有错;规范中没有规定子元素不能与其父元素同名。这可能不寻常,但仍然有效。

关于c# - 关于 .net 中 XML 反序列化的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823114/

相关文章:

c# - 装箱/拆箱是通过后期绑定(bind)还是早期绑定(bind)(即在运行时或编译时)实现的?

c# - bobj 未在 VS 2010 中定义

java - 解码具有与父级和子级相同标记的 JAXB 元素

android - 在 android studio 中反序列化操作 wcf 的请求消息正文时出错

c# - ReSharper inspectcode.exe 2016.3 抛出异常

c# - 如何知道TextEdit中当前的可见性偏移量?

.net - 如何使用 Moq 验证某个方法被调用了一次?

.net - 如何安全访问 DataGridView 列名?

c# - TextBox 和 .AppendText() 中的行的奇怪行为 - C#

java - 使用 JAXB 的动态 XML 属性