public void ProcessDomExplicit() { XmlDocument doc = new XmlDocument(); doc.LoadXml(@"<blah><include path='IncludeXmlTestSource.xml' query='food/fruit/name'/></blah>"); m_includer.ProcessDom("TestMainFile", doc); Assert.IsNull(doc.SelectSingleNode("include")); Assert.AreEqual(2, doc.SelectNodes("blah/name").Count); }
/// <summary> /// Loads the configuration file at the specified path and resolves any nodes /// that need to get included from other files indicated by internal relative paths. /// </summary> /// <param name="configurationPath"></param> /// <param name="skipMissingFiles">if true, missing files are skipped rather than throwing exception</param> /// <returns></returns> public static XmlDocument LoadConfigurationWithIncludes(string configurationPath, bool skipMissingFiles) { XmlDocument configuration = new XmlDocument(); configuration.Load(configurationPath); //process <include> elements SimpleResolver resolver = new SimpleResolver(); //do includes relative to the dir of our config file resolver.BaseDirectory = System.IO.Path.GetDirectoryName(configurationPath); XmlIncluder includer = new XmlIncluder(resolver); includer.SkipMissingFiles = skipMissingFiles; includer.ProcessDom(configurationPath, configuration); return configuration; }