如何配置XML反序列化器来获取属性?

时间:2011-11-25 08:27:17

标签: c# xml xml-serialization xml-deserialization

  

可能重复:
  Deserializing XML, how do I access attributes?

我正在反序列化以下XML:

<root>
  <foo> some content </foo>
  <bar id="someId">someContent</bar>
</root>

使用XMLSerializer进入下面的Class对象。

[XmlRootAttribute("foobar")]
public class foobar
{

    [XmlElementAttribute("foo")]
    public string foo { get; set; }

    [XmlElementAttribute("bar")]
    public string bar { get; set; }        

}

但是,这不会在someId标记中选择bar。我还需要做些什么改变呢?

我试过了:

在上面的课程中,我将第二个属性更改为:

[XmlElementAttribute("bar")]
public Bar bar { get; set; } 

然后定义了一个新类:

[XmlTypeAttribute]
    public class Bar
    {
        [XmlAttribute("id")]
        public string id { get; set; }

        [XmlText]
        public string Value { get; set; }
    }

这仍然会获取值,但不是Id

1 个答案:

答案 0 :(得分:1)

尝试使用不带(“id”)的XmlAttribute来修复它。