示例#1
0
        public void LoadDefinitionByXml(string xml)
        {
            TrIdEngineConfig trIdEngineConf = LoadDefinitionByXml(xml, FileFrontSize);

            if (trIdEngineConf != null)
            {
                Definitions.Add(trIdEngineConf.Definition);
                FileFrontSize = Math.Max(FileFrontSize, trIdEngineConf.MaxFrontSize);
            }
        }
示例#2
0
        public static TrIdEngineConfig LoadDefinitionByXml(string xml, int maxFrontSize)
        {
            TrIdEngineConfig trIdEngineConf = null;

            if (xml != null)
            {
                trIdEngineConf = new TrIdEngineConfig();
                FileDefPattern fileDefPat = new FileDefPattern {
                    ExtraInfo = new ExtraInfo()
                };

                XPathDocument  xPathDocument = new XPathDocument(new StringReader(xml));
                XPathNavigator nav           = xPathDocument.CreateNavigator();

                fileDefPat.FileExt                = nav.SelectSingleNode("//Info/Ext")?.Value;
                fileDefPat.FileType               = nav.SelectSingleNode("//Info/FileType")?.Value;
                fileDefPat.ExtraInfo.FileType     = fileDefPat.FileType;
                fileDefPat.ExtraInfo.FileExt      = fileDefPat.FileExt;
                fileDefPat.ExtraInfo.AuthorName   = nav.SelectSingleNode("//Info/User")?.Value;
                fileDefPat.ExtraInfo.AuthorEMail  = nav.SelectSingleNode("//Info/E-Mail")?.Value;
                fileDefPat.ExtraInfo.AuthorHome   = nav.SelectSingleNode("//Info/Home")?.Value;
                fileDefPat.ExtraInfo.Remark       = nav.SelectSingleNode("//ExtraInfo/Rem")?.Value;
                fileDefPat.ExtraInfo.RelURL       = nav.SelectSingleNode("//ExtraInfo/RefURL")?.Value;
                fileDefPat.ExtraInfo.FilesScanned = (int)Math.Round(double.Parse(nav.SelectSingleNode("//General/FileNum")?.Value ?? "0"));
                LoadFrontBlockNode(fileDefPat, nav.Select("//FrontBlock/Pattern"));
                LoadGlobalStringsNode(fileDefPat, nav.Select("//GlobalStrings/String"));

                /*
                 * XmlDocument xmlDocument = new XmlDocument();
                 * xmlDocument.LoadXml(xml);
                 * fileDefPat.FileType = xmlDocument.SelectSingleNode("//Info/FileType")?.InnerText;
                 * XmlNode xmlNode = xmlDocument.SelectSingleNode("//Info/Ext");
                 * if (xmlNode != null)
                 * {
                 *  fileDefPat.FileExt = xmlNode.InnerText;
                 * }
                 *
                 * fileDefPat.ExtraInfo.FileType = fileDefPat.FileType;
                 * fileDefPat.ExtraInfo.FileExt = fileDefPat.FileExt;
                 *
                 * xmlNode = xmlDocument.SelectSingleNode("//Info/User");
                 * if (xmlNode != null)
                 * {
                 *  fileDefPat.ExtraInfo.AuthorName = xmlNode.InnerText;
                 * }
                 *
                 * xmlNode = xmlDocument.SelectSingleNode("//Info/E-Mail");
                 * if (xmlNode != null)
                 * {
                 *  fileDefPat.ExtraInfo.AuthorEMail = xmlNode.InnerText;
                 * }
                 *
                 * xmlNode = xmlDocument.SelectSingleNode("//Info/Home");
                 * if (xmlNode != null)
                 * {
                 *  fileDefPat.ExtraInfo.AuthorHome = xmlNode.InnerText;
                 * }
                 *
                 * xmlNode = xmlDocument.SelectSingleNode("//ExtraInfo/Rem");
                 * if (xmlNode != null)
                 * {
                 *  fileDefPat.ExtraInfo.Remark = xmlNode.InnerText;
                 * }
                 *
                 * xmlNode = xmlDocument.SelectSingleNode("//ExtraInfo/RefURL");
                 * if (xmlNode != null)
                 * {
                 *  fileDefPat.ExtraInfo.RelURL = xmlNode.InnerText;
                 * }
                 *
                 * xmlNode = xmlDocument.SelectSingleNode("//General/FileNum");
                 * if (xmlNode != null)
                 * {
                 *  fileDefPat.ExtraInfo.FilesScanned = (int) Math.Round(double.Parse(xmlNode.InnerText));
                 * }
                 *
                 * XmlNodeList frontBlockNode = xmlDocument.SelectNodes("//FrontBlock/Pattern");
                 * if (frontBlockNode != null)
                 * {
                 *  LoadFrontBlockNode(fileDefPat, frontBlockNode);
                 * }
                 *
                 * XmlNodeList globalStringsNode = xmlDocument.SelectNodes("//GlobalStrings/String");
                 * if (globalStringsNode != null)
                 * {
                 *  LoadGlobalStringsNode(fileDefPat, globalStringsNode);
                 * }
                 */
                trIdEngineConf.MaxFrontSize = Math.Max(maxFrontSize, fileDefPat.FrontBlockSize);
                trIdEngineConf.Definition   = fileDefPat;
            }

            return(trIdEngineConf);
        }