XML解析,奇怪的行为.(前3个日期有效,其余为空白)

本文关键字:有效 日期 空白 3个 解析 XML | 更新日期: 2023-09-27 18:26:08

所以这是我的代码:

static void Main(string[] args)
    {
        string Xml;
        Xml = System.IO.File.ReadAllText (@"C:'Users'user'Desktop'Practice Projects'C#'XML.txt");
        //Console.WriteLine(Xml);
        string created = Xml.Substring(Xml.IndexOf("<created>")+30,15);
        string modified = Xml.Substring(Xml.IndexOf("<modified>") + 31, 15);
        string revised = Xml.Substring(Xml.IndexOf("<revised>") + 30, 15);
        string lastAccessed = Xml.Substring(Xml.IndexOf("<lastaccessed>") + 35, 15);
        Console.WriteLine (lastAccessed);
        string updatedBy = Xml.Substring(Xml.IndexOf("<updatedby>") + 17, 9);
        Console.WriteLine (updatedBy);
        string mailBody = Xml.Substring(Xml.IndexOf(""));
        //string status;
        Mail mail = new Mail();
        mail.Created = DateTime.ParseExact (created, "yyyyMMddTHHmmss", CultureInfo.InvariantCulture);
        Console.WriteLine ("The e-Mail was created on: " + mail.Created);
        mail.Modified   = DateTime.ParseExact (modified,"yyyyMMddTHHmmss", CultureInfo.InvariantCulture);
        Console.WriteLine ("The e-MAil was last modified on: " + mail.Modified);
        mail.Revised = DateTime.ParseExact (revised, "yyyyMMddTHHmmss", CultureInfo.InvariantCulture);
        Console.WriteLine ("The e-Mail was revised on: " + mail.Revised);
        mail.LastAccessed = DateTime.ParseExact (lastAccessed, "yyyyMMddTHHmmss", CultureInfo.InvariantCulture);
        Console.WriteLine ("The e-Mail was last accessed on:", mail.LastAccessed);
        mail.UpdatedBy = updatedBy;
        Console.WriteLine ("The e-Mail was last updated by: ", mail.UpdatedBy);
        mail.MailBody = mailBody;
        Console.WriteLine ("The e-Mail body is: ", mail.MailBody);
Console.ReadLine();
    }
    public static string PraseDateTime (string Text, string StartTag, string EndTag)
    {
        int StartPosition = Text.IndexOf(StartTag) + StartTag.Length;
        int Length = Text.IndexOf(EndTag) - StartPosition;
        return Text.Substring(StartPosition, Length - 6);
    }
public class Mail
{
    public DateTime Created { get; set; }
    public DateTime Modified { get; set; }
    public DateTime Revised { get; set; }
    public DateTime LastAccessed { get; set; }
    public string UpdatedBy { get; set; }
    public Requester Caller { get; set; }
    public String MailBody { get; set; }
    public Mail ()
    {
        Caller = new Requester();
    }
}

所以问题是,我的代码适用于前3个,但当涉及到最后2个时,它什么都没有显示:lastAccessed和updatedBy,即使当我检查这2个变量时,文本仍然是空白的,它们显然包含了一些东西。(第一个包含日期,比如:20120522T230123,第二个(名称),比如:WGAMaster)我可以补充一下,lastAccessed和modified是一样的,但lastAccessed不起作用。

如果有任何帮助,或者有更好的方法从XML中解析文本,我将不胜感激。非常感谢。

XML解析,奇怪的行为.(前3个日期有效,其余为空白)

我假设您使用的是XML。为什么不使用正确的Xml Parser。NET提供了分析XML文件的类,例如,您可以使用XmlDocument类或XmlSerializer。您可以查看使用XmlSerializer的示例@https://msdn.microsoft.com/en-us/library/tz8csy73(v=vs.110).aspx