c#-向用户展示文件XML值的最佳方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-向用户展示文件XML值的最佳方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2402字,纯文字阅读大概需要4分钟。
内容图文
![c#-向用户展示文件XML值的最佳方法?](/upload/InfoBanner/zyjiaocheng/671/a64c522c569e47cdb283f25410a34f3d.jpg)
我有一个XML文件,看起来很熟悉:
<root>
<carnumber>12</carnumber>
<carcolor>2</carcolor>
<cartype>5</cartype>
</root>
就像您看到的那样,我得到了一些带有值/文本的元素.例如,car元素的取值范围是1到1000.carcolor元素的取值范围是1-5,cartype的取值范围是1-10.
重要的是,carcolor和cartype元素的值有意义. carcolor“ 2”表示红色,“ 1”表示蓝色,依此类推.
因此,我需要向用户展示的不是值,而是值的真实含义.
我发现自己创建了一些类来表示具有有效值的元素,事情变得非常复杂,我不知道这是否是最好的方法.
我的一个朋友建议我使用XML序列化,因为我的XML文件是静态的.它永远不会改变.
我的问题很简单.我只是想知道您将如何解决这个问题.我的想法包含代表XML元素的类,例如,在这个类中的cartype我有一对字典.这表示XML文件中的值,字符串是该值的含义.而且我经常使用Linq来浏览和编辑值.
再次感谢!
解决方法:
试试看:
[XmlRoot("root")]
public class Car
{
private static XmlSerializer serializer = new XmlSerializer(typeof(Car));
[XmlElement("carnumber")]
public int Number { get; set; }
[XmlElement("carcolor")]
public int Color { get; set; }
[XmlElement("cartype")]
public int Type { get; set; }
[XmlIgnore]
public CarColor CarColor
{
get
{
return (CarColor)Color;
}
set
{
Color = (int)value;
}
}
[XmlIgnore]
public CarType CarType
{
get
{
return (CarType)Type;
}
set
{
Type = (int)value;
}
}
public string CarColorString
{
get
{
return this.CarColor.ToString().Replace('_', ' ');
}
}
public string CarTypeString
{
get
{
return this.CarType.ToString().Replace('_', ' ');
}
}
public string Serialize()
{
StringBuilder sb = new StringBuilder();
using (StringWriter writer = new StringWriter(sb))
{
serializer.Serialize(writer, this);
}
return sb.ToString();
}
public static Car Deserialize(string xml)
{
using (StringReader reader = new StringReader(xml))
{
return (Car)serializer.Deserialize(reader);
}
}
}
public enum CarColor
{
Red = 1,
Blue = 2,
Green = 3,
Light_Brown = 4
// and so on...
}
public enum CarType
{
Sedan = 1,
Coupe = 2,
Hatchback = 3,
SUV = 4,
Pickup_Truck = 5
// and so on...
}
我添加了一些枚举以供演示.
您可以设置Car的值并将其序列化为xml字符串:
Car car = new Car();
car.Number = 1;
car.CarColor = CarColor.Blue;
car.CarType = CarType.Coupe;
string xml = car.Serialize();
然后将xml字符串反序列化为汽车:
string example =
@"<root>
<carnumber>12</carnumber>
<carcolor>2</carcolor>
<cartype>5</cartype>
</root>";
Car car = Car.Deserialize(example);
为了进行演示,可以使用CarColorString和CarTypeString属性,如果枚举值包含多个单词,则可以使用空格替换下划线.
Console.WriteLine(car.CarColorString);
Console.WriteLine(car.CarTypeString);
内容总结
以上是互联网集市为您收集整理的c#-向用户展示文件XML值的最佳方法?全部内容,希望文章能够帮你解决c#-向用户展示文件XML值的最佳方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。