反序列化 XML 以反对并忽略某些节点

Deserialize XML to object and ignore some nodes

我有 XML 个节点字符串:

MyXmlString="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><MyNodes><Node1 /><Node2 /><Node3 /></MyNodes>";

我有 class:

public class MyClass
{
    [DataMember]
    [XmlElement("Node1", Order = 10)]
    public String Node1 { get; set; }

    [DataMember]
    [XmlElement("Node3", Order = 20)]
    public String Node3 { get; set; }
}

当我从 XML 反序列化到对象时,我想跳过 Node2 inside string:

MyClass MyObject= XElement.Parse(MyXmlString).FromXml<MyClass>();

MyObject 具有 Node1 的值,但 Node3 为空,即使 xmlString 具有它的值。 我可以在将某些对象序列化为 Xml 时使用 xmlIgnore。但我的情况恰恰相反——xml 有我不需要的节点。最简单的方法是什么?

如果删除 Order 属性,您将获得 Node3 的值,XmlSerializer 将忽略 Node2。如果您真的不需要订购,则不应使用它。

在此处查找非常相似的案例:XmlSerializer. Skip xml unknown node