public static void Run(string fileName)
        {
            var textSource = new StringTextSource(File.ReadAllText(fileName));

            using (var textReader = textSource.CreateReader())
            {
                using (var xmlReader = new XmlTextReader(textReader))
                {
                    Run(xmlReader);
                }
            }
            var doc = new AXmlParser().Parse(textSource);

            using (var xmlReader = doc.CreateReader())
            {
                Run(xmlReader);
            }
            var xmlDocument = new XmlDocument();

            xmlDocument.Load(doc.CreateReader());
            xmlDocument.Save(Path.Combine(Program.TempPath, "savedXmlDocument.xml"));
            var xDocument = XDocument.Load(doc.CreateReader());

            xDocument.Save(Path.Combine(Program.TempPath, "savedXDocument.xml"));
        }
        public Import ParseImport(Import import)
        {
            Token.ThrowIfCancellationRequested();

            var         xmlParser = new XmlTreeParser(new XmlRootState());
            ITextSource textSource;
            XDocument   doc;

            try {
                textSource = new StringTextSource(File.ReadAllText(import.Filename));
                (doc, _)   = xmlParser.Parse(textSource.CreateReader());
            } catch (Exception ex) when(IsNotCancellation(ex))
            {
                LoggingService.LogError("Unhandled error parsing xml document", ex);
                return(import);
            }

            import.Document = new MSBuildDocument(import.Filename, false);
            import.Document.Build(doc, this);
            try {
                import.Document.Schema = SchemaProvider.GetSchema(import.Filename, import.Sdk);
            } catch (Exception ex) {
                LoggingService.LogError($"Error loading schema for '{import.Filename}'", ex);
            }

            return(import);
        }
        public void CanGetTextFromReaderReturnedFromTextBufferCreateReader()
        {
            string      expectedText = "abc";
            ITextSource textBuffer   = new StringTextSource("abc");

            StringBuilder text = new StringBuilder();

            using (TextReader reader = textBuffer.CreateReader()) {
                Assert.AreEqual(expectedText, reader.ReadToEnd());
            }
        }
예제 #4
0
        public static void Run(string fileName)
        {
            bool includeAttributes = true;
            var  textSource        = new StringTextSource(File.ReadAllText(fileName));

            using (var textReader = textSource.CreateReader()) {
                using (var xmlReader = new XmlTextReader(textReader)) {
                    Run(xmlReader, includeAttributes);
                }
            }
            var doc = new AXmlParser().Parse(textSource);

            using (var xmlReader = doc.CreateReader()) {
                Run(xmlReader, includeAttributes);
            }
            var xmlDocument = new XmlDocument();

            xmlDocument.Load(doc.CreateReader());
            xmlDocument.Save(Path.Combine(Program.TempPath, "savedXmlDocument.xml"));
            var xDocument = XDocument.Load(doc.CreateReader());

            xDocument.Save(Path.Combine(Program.TempPath, "savedXDocument.xml"));
            File.WriteAllText(Path.Combine(Program.TempPath, "inputDocument.xml"), textSource.Text);
        }