Использование атрибутов класса XML, как представлять тег XML как с внутренним текстом, так и с атрибутами?
Предположим, что у меня есть этот XML файл:
<weather>
<temp>24.0</temp>
<current-condition iconUrl="http://....">Sunny</current-condition>
</weather>
Я пытаюсь создать класс С# для представления этого с помощью атрибутов, чтобы вызвать XmlSerializer и иметь строго типизированный доступ к тегам. Я думаю, что структура будет выглядеть примерно так:
[XmlRoot("weather")]
public class WeatherData
{
[XmlElement("temp")]
public string Temp { get; set; }
[XmlElement("current-condition")]
public CurrentCondition currentCond = new CurrentCondition();
}
public class CurrentCondition
{
[XmlAttribute("iconUrl")
public string IconUrl { get; set; }
// Representation of Inner Text?
}
Представление тега temp было прямым. Однако, учитывая тег, например current-condition, который имеет как внутренний текст, так и атрибут, как я могу представить внутренний текст?
Я, скорее всего, слишком усложняю это, поэтому, пожалуйста, не стесняйтесь предлагать альтернативу.
Ответы
Ответ 1
Используйте [XmlText]
для описания внутреннего текстового содержимого.
public class CurrentCondition
{
[XmlAttribute("iconUrl")
public string IconUrl { get; set; }
// Representation of Inner Text:
[XmlText]
public string ConditionValue { get; set; }
}