从XmlNode填充对象

时间:2015-04-29 10:31:26

标签: c# xml-parsing

我有一个对象'自动图文集'正在使用以下ctor从XmlNode(从远程源检索)填充的内容:

public AutoText(XmlNode autoTextNode)
{
    if (null == autoTextNode)
    {
        throw new System.Exception("Attempted to create AutoText with null autoTextNode");
    }

    foreach (XmlNode childNode in autoTextNode.ChildNodes)
    {
        string childNodeName = childNode.Name;
        if (childNodeName == "Id")
        {
            this.AutoTextId = childNode.InnerText;
        }
        ... snip ...
        else if (childNodeName == "Autotext")
        {
            this.AutoTextContent = childNode.InnerText;
        }
    }
}

有更好的方法吗?我知道我可以这样做:

this.AutoTextId = autoTextNode["Id"].InnerText;

但是如果' Id'可能会抛出空引用异常。没有,所以你需要检查任何可选字段。实际上在所有领域,如果强制节点不存在,你可能会想要一个特定的例外。这个解决方案看起来很难看。我确定有更好的方法,但不知道它是什么!

1 个答案:

答案 0 :(得分:0)

你可以搜索“序列化xml到对象”,这里有很多问题,主题。

这个答案适合你:C# Serialize XML to Object