public void TestReader() { Provider provider = new DocumentProvider(); StringReader source = new StringReader(SOURCE); EventReader reader = provider.provide(source); AssertEquals(reader.peek().getName(), "root"); AssertEquals(reader.next().getName(), "root"); assertTrue(reader.peek().isText()); assertTrue(reader.next().isText()); while (reader.peek().isText()) { assertTrue(reader.next().isText()); // remove text from the document } AssertEquals(reader.peek().getName(), "child"); AssertEquals(reader.next().getName(), "child"); assertTrue(reader.peek().isText()); assertTrue(reader.next().isText()); while (reader.peek().isText()) { assertTrue(reader.next().isText()); // remove text from the document } AssertEquals(reader.peek().getName(), "leaf"); AssertEquals(reader.next().getName(), "leaf"); assertTrue(reader.peek().isText()); AssertEquals(reader.peek().getValue(), "leaf node"); AssertEquals(reader.next().getValue(), "leaf node"); assertTrue(reader.next().isEnd()); while (reader.peek().isText()) { assertTrue(reader.next().isText()); // remove text from the document } assertTrue(reader.next().isEnd()); while (reader.peek().isText()) { assertTrue(reader.next().isText()); // remove text from the document } }
/// <summary> /// Constructor for the <c>NodeReader</c> object. This is used /// to read XML events a input node objects from the event reader. /// </summary> /// <param name="reader"> /// this is the event reader for the XML document /// </param> public NodeReader(EventReader reader) { this.stack = new InputStack(); this.reader = reader; }
/// <summary> /// This is used to create an <c>InputNode</c> that can be /// used to read XML from the specified reader. The reader will /// be positioned at the root element in the XML document. /// </summary> /// <param name="source"> /// This contains the contents of the XML source. /// </param> private static InputNode Read(EventReader source) { return(new NodeReader(source).ReadRoot()); }