示例#1
0
        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);
        }
示例#2
0
		/// <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;
		}