如果您可以修复 XML 的样式,我会反序列化它
private static string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
<Post>
<Title>this is a title</Title>
<ProxyDateTime>2013/06/03</ProxyDateTime>
<Message>this is a message here</Message>
</Post>";
public class Post
{
public string Title { get; set; }
public string Message { get; set; }
[XmlIgnore]
public DateTime Date { get; set; }
public string ProxyDateTime
{
get { return Date.Date.ToString(); }
set { Date = DateTime.Parse(value); }
}
public override string ToString()
{
return String.Join(Environment.NewLine,
new [] {"Title: " + Title, "Date: " + Date, "Message: " + Message});
}
}
示例使用
XmlSerializer serializer = new XmlSerializer(typeof (Post));
var post = (Post)serializer
.Deserialize(new MemoryStream(Encoding.ASCII.GetBytes(xml)));
Console.WriteLine(post);
这允许您以强类型的方式处理空值。我过去曾使用 LINQ to XML 来执行此操作。它可以工作,但是对于大型课程会变得非常麻烦。这样你的代码就更具可扩展性。