internal virtual void InternalLoad(string physicalPath) { string text = CFiles.ReadFile(physicalPath); if (!string.IsNullOrEmpty(text)) { using (StringReader stringReader = new StringReader(text)) { using (XmlReader xmlReader = XmlReader.Create(stringReader, new XmlReaderSettings { CloseInput = true, IgnoreWhitespace = true, IgnoreComments = true, IgnoreProcessingInstructions = true })) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(xmlReader); this.Reset(); if (xmlDocument.DocumentElement != null && xmlDocument.HasChildNodes) { base.CacheDurationInMinutes = XmlSiteMap.GetFloatValueFromAttribute(xmlDocument.DocumentElement, "cacheDurationInMinutes", SiteMapBase.DefaultCacheDurationInMinutes); base.Compress = XmlSiteMap.GetBooleanValueFromAttribute(xmlDocument.DocumentElement, "compress", true); base.GenerateSearchEngineMap = XmlSiteMap.GetBooleanValueFromAttribute(xmlDocument.DocumentElement, "generateSearchEngineMap", true); XmlNode firstChild = xmlDocument.DocumentElement.FirstChild; XmlSiteMap.Iterate(base.RootNode, firstChild); this.InsertInCache(physicalPath); } } } } }
private static void Iterate(SiteMapNode siteMapNode, XmlNode xmlNode) { XmlSiteMap.PopulateNode(siteMapNode, xmlNode); foreach (XmlNode xmlNode2 in xmlNode.ChildNodes) { if (xmlNode2.LocalName.IsCaseSensitiveEqual("siteMapNode")) { SiteMapNode siteMapNode2 = new SiteMapNode(); siteMapNode.ChildNodes.Add(siteMapNode2); XmlSiteMap.Iterate(siteMapNode2, xmlNode2); } } }