Можно создать дубликат:
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
.
Я думаю, вам нужно сделать свой объект «bar» чем-то другим, кроме строки, потому что наличие атрибута не имеет смысла для строки. – jv42
Вы пробовали XmlAttribute без ("id")? – Steve
Та же проблема: http://stackoverflow.com/questions/6003847/deserializing-xml-how-do-i-access-attributes – Steve