2010-09-03 15 views
13

Digamos que tengo este archivo XML:Usando Atributos de clase XML, ¿cómo representar una etiqueta XML con texto interno y atributos?

<weather> 
    <temp>24.0</temp> 
    <current-condition iconUrl="http://....">Sunny</current-condition> 
</weather> 

Estoy intentando crear una clase C# para representar esto utilizando atributos con el fin de llamar XmlSerializer y ha escrito fuertemente el acceso de la etiqueta. Creo que la estructura se verá más o menos así:

[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? 
} 

La representación de la etiqueta 'temp' fue sencilla. Sin embargo, dada una etiqueta como condición actual que tiene tanto texto interno como un atributo, ¿cómo represento el texto interno?

Probablemente estoy complicando demasiado esto, así que siéntase libre de sugerir una alternativa.

Respuesta

20

Use [XmlText] para describir el contenido de texto interno.

public class CurrentCondition 
{ 
    [XmlAttribute("iconUrl") 
    public string IconUrl { get; set; } 

    // Representation of Inner Text: 
    [XmlText] 
    public string ConditionValue { get; set; } 
} 
+0

Vi esto un par de veces mirando a través de MSDN; ¡Esto prueba que definitivamente no lo leí con mucho cuidado! ¡Gracias! –

Cuestiones relacionadas