public void DomReaderBasicTest() { bool moved = false; string paragraphOuterXml = "<w:p w:rsidP=\"001\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"><w:r><w:t>Run Text.</w:t><w:t>Run 2.</w:t></w:r></w:p>"; Paragraph para = new Paragraph(paragraphOuterXml); OpenXmlReader targetReader = OpenXmlReader.Create(para); targetReader.Read(); TestReaderOnParagraph(targetReader); moved = targetReader.Read(); // should be false Assert.False(moved); Assert.True(targetReader.EOF); Assert.True(string.IsNullOrEmpty(targetReader.GetText())); targetReader.Close(); targetReader = OpenXmlReader.Create(para); targetReader.Read(); moved = targetReader.ReadFirstChild(); // read to <w:r> OpenXmlElement element = targetReader.LoadCurrentElement(); // at the end of the run Assert.False(targetReader.EOF); Assert.NotNull(targetReader.Attributes); Assert.Empty(targetReader.Attributes); Assert.False(targetReader.HasAttributes); Assert.False(targetReader.IsStartElement); Assert.True(targetReader.IsEndElement); Assert.False(targetReader.IsMiscNode); Assert.Equal(typeof(Run), targetReader.ElementType); Assert.True(string.IsNullOrEmpty(targetReader.GetText())); Assert.False(targetReader.GetLineInfo().HasLineInfo()); // loaded element is Run Assert.NotNull(element); Assert.IsType <Run>(element); Run run = (Run)element; Assert.Equal("Run Text.", (run.FirstChild as Text).Text); Assert.Equal("Run 2.", (run.LastChild as Text).Text); targetReader.Close(); }
public void PartReaderMiscNodeTest() { string partText = "<w:document xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\">" + "<!-- start body -->" + "<w:body>" + "<w:p w:rsidP=\"001\"><w:r><w:t>Run Text.</w:t><w:t>Run 2.</w:t></w:r></w:p>" + "</w:body>" + "</w:document>"; UTF8Encoding utf8Encoding = new UTF8Encoding(); Stream stream = new MemoryStream(utf8Encoding.GetBytes(partText), false); //======== new test with a new reader ======== OpenXmlReader reader = OpenXmlReader.Create(stream, true); // read misc nodes Assert.False(reader.EOF); bool moved = reader.Read(); Assert.True(moved); Assert.False(reader.EOF); Assert.Equal(0, reader.Depth); Assert.True(reader.IsStartElement); Assert.False(reader.IsEndElement); Assert.False(reader.IsMiscNode); Assert.True(reader.GetLineInfo().HasLineInfo()); Assert.Equal(1, reader.GetLineInfo().LineNumber); Assert.Equal(2, reader.GetLineInfo().LinePosition); moved = reader.Read(); Assert.True(moved); Assert.False(reader.EOF); Assert.Equal(1, reader.Depth); Assert.False(reader.IsStartElement); Assert.False(reader.IsEndElement); Assert.True(reader.IsMiscNode); Assert.True(reader.GetLineInfo().HasLineInfo()); Assert.Equal(1, reader.GetLineInfo().LineNumber); Assert.Equal(88, reader.GetLineInfo().LinePosition); Assert.Equal(string.Empty, reader.Prefix); Assert.Equal(string.Empty, reader.NamespaceUri); reader.Close(); }
public void PartReaderBasicTest() { string partText = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + "<w:document xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\">" + "<w:body>" + "<w:p w:rsidP=\"001\"><w:r><w:t>Run Text.</w:t><w:t>Run 2.</w:t></w:r></w:p>" + "<w:p w:rsidP=\"001\"><w:r><w:t>Run Text.</w:t><w:t>Run 2.</w:t></w:r></w:p>" + "</w:body>" + "</w:document>"; UTF8Encoding utf8Encoding = new UTF8Encoding(); Stream stream = new MemoryStream(utf8Encoding.GetBytes(partText), false); OpenXmlReader targetReader = OpenXmlReader.Create(stream); targetReader.Read(); Assert.False(targetReader.EOF); Assert.NotNull(targetReader.Attributes); Assert.Empty(targetReader.Attributes); Assert.False(targetReader.HasAttributes); Assert.True(targetReader.IsStartElement); Assert.False(targetReader.IsEndElement); Assert.False(targetReader.IsMiscNode); Assert.True(string.IsNullOrEmpty(targetReader.GetText())); Assert.Equal(typeof(Document), targetReader.ElementType); targetReader.ReadFirstChild(); // to <w:body> targetReader.Read(); // to <w:p> TestReaderOnParagraph(targetReader); Assert.False(targetReader.EOF); Assert.NotNull(targetReader.Attributes); Assert.Empty(targetReader.Attributes); Assert.False(targetReader.HasAttributes); Assert.False(targetReader.IsStartElement); Assert.True(targetReader.IsEndElement); Assert.False(targetReader.IsMiscNode); Assert.Equal(typeof(Paragraph), targetReader.ElementType); Assert.True(string.IsNullOrEmpty(targetReader.GetText())); Assert.True(targetReader.GetLineInfo().HasLineInfo()); Assert.Equal(1, targetReader.GetLineInfo().LineNumber); Assert.Equal(216, targetReader.GetLineInfo().LinePosition); targetReader.ReadNextSibling(); // next <w:p> OpenXmlElement element = targetReader.LoadCurrentElement(); // at </w:p> Assert.False(targetReader.EOF); Assert.NotNull(targetReader.Attributes); Assert.Empty(targetReader.Attributes); Assert.False(targetReader.HasAttributes); Assert.False(targetReader.IsStartElement); Assert.True(targetReader.IsEndElement); Assert.False(targetReader.IsMiscNode); Assert.Equal(typeof(Paragraph), targetReader.ElementType); Assert.True(string.IsNullOrEmpty(targetReader.GetText())); Assert.Equal(1, targetReader.GetLineInfo().LineNumber); Assert.Equal(295, targetReader.GetLineInfo().LinePosition); // loaded element is Run Assert.NotNull(element); Assert.IsType <Paragraph>(element); Run run = (Run)element.FirstChild; Assert.Equal("Run Text.", (run.FirstChild as Text).Text); Assert.Equal("Run 2.", (run.LastChild as Text).Text); targetReader.Close(); }