将XML反序列化为对象并忽略某些节点

时间:2017-01-16 13:27:56

标签: c# xml xml-serialization

我有带节点的XML字符串:

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

我上课了:

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:

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

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

1 个答案:

答案 0 :(得分:1)

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

在这里查看非常相似的案例:XmlSerializer. Skip xml unknown node