// 装入XML
StringReader reader = new StringReader(folderInfo);
XmlTextReader xml = new XmlTextReader(reader);
四、分析邮件基本信息
为了遍历一次就解析好整个XML文档,我们在每次打开元素时就创建一个新的MailItem实例,一遇到标记的末尾就保存该实例,在此期间,我们提取并设置MailItem的域:
// 读取XML数据
while(xml.Read())
{
string name = xml.Name;
XmlNodeType nodeType = xml.NodeType;
// 是一个email?
if(name == "D:response")
{
// 开始?
if(nodeType == XmlNodeType.Element)
{
// 创建一个新的MailItem
mailItem = new MailItem();
}
// 结束?
if(nodeType == XmlNodeType.EndElement)
{
// 保存email
mailItems.Add(mailItem);
// 清除变量
mailItem = null;
}
}
// 是一个元素?
if(nodeType == XmlNodeType.Element)
{
// 邮件的URL属性
if(name == "D:href")
{
// 继续读取
xml.Read();
mailItem.Url = xml.Value;
}
// 邮件的“已阅读”属性
if(name == "hm:read")
{
// 继续读取
xml.Read();
mailItem.IsRead = (xml.Value == "1");
}
// 其他MailItem的属性
}
}
上面的代码枚举指定文件夹内的每一个MailItem,分别提取各个MailItem的下列属性:
XML节点 说明
D:href 用来提取邮件的URL&n