2011-11-25 2 views
1

Можно создать дубликат:
Deserializing XML, how do I access attributes?Как можно настроить десериализатор XML для получения атрибута?

Я десериализации следующий XML:

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

в объект класса ниже с помощью XMLSerializer.

[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.

+0

Я думаю, вам нужно сделать свой объект «bar» чем-то другим, кроме строки, потому что наличие атрибута не имеет смысла для строки. – jv42

+0

Вы пробовали XmlAttribute без ("id")? – Steve

+1

Та же проблема: http://stackoverflow.com/questions/6003847/deserializing-xml-how-do-i-access-attributes – Steve

ответ

1

попробуйте использовать XmlAttribute без («id»), который должен исправить.

Смежные вопросы