+ " to java class. Have you annotated such a field in your java class to map this xml element? Otherwise you can turn this error message off with TikXml.Builder().exceptionOnUnreadXml(false).build()."); } else { reader.skipRemainingElement(); // includes reader.endElement()
+ " to java class. Have you annotated such a field in your java class to map this xml element? Otherwise you can turn this error message off with TikXml.Builder().exceptionOnUnreadXml(false).build()."); } else { reader.skipRemainingElement(); // includes reader.endElement()
} else { reader.skipRemainingElement(); skipped = true;
@Test public void callingSkipRemainingElementInWrongPlace() throws IOException { String xml = "<foo><e1></e1><bar a='1' b='2'>TextContent<child a='1'>Child text Value<other b='123'>Text<inline /></other></child> <![CDATA[some <cdata></> &]]> </bar>TextAfterSkippedElement<element></element></foo>"; XmlReader reader = readerFrom(xml); try { Assert.assertTrue(reader.hasElement()); reader.beginElement(); Assert.assertEquals("foo", reader.nextElementName()); reader.beginElement(); Assert.assertEquals("e1", reader.nextElementName()); reader.endElement(); exception.expect(AssertionError.class); exception.expectMessage( "This method can only be invoked after having consumed the opening element via beginElement()"); reader.skipRemainingElement(); // Forgot to call beginElement() before } finally { reader.close(); } }
@Test public void skipRemainingElementUnclosed() throws IOException { String xml = "<foo><e1></e1><bar a='1' b='2'>TextContent<child a='1'>Child text Value<other b='123'>Text<inline /></other> <![CDATA[some <cdata></> &]]>"; XmlReader reader = readerFrom(xml); try { Assert.assertTrue(reader.hasElement()); reader.beginElement(); Assert.assertEquals("foo", reader.nextElementName()); reader.beginElement(); Assert.assertEquals("e1", reader.nextElementName()); reader.endElement(); reader.beginElement(); // <bar> element exception.expect(IOException.class); exception.expectMessage("Unexpected end of input at path /foo/bar/child/text()"); reader.skipRemainingElement(); // skip <bar> } finally { reader.close(); } }
@Test public void skipRemainingElement() throws IOException { String xml = "<foo><e1></e1><bar a='1' b='2'>TextContent<child a='1'>Child text Value<other b='123'>Text<inline /></other></child> <![CDATA[some <cdata></> &]]> </bar>TextAfterSkippedElement<element></element></foo>"; XmlReader reader = readerFrom(xml); try { Assert.assertTrue(reader.hasElement()); reader.beginElement(); Assert.assertEquals("foo", reader.nextElementName()); reader.beginElement(); Assert.assertEquals("e1", reader.nextElementName()); reader.endElement(); reader.beginElement(); // <bar> element reader.skipRemainingElement(); // skip <bar> Assert.assertEquals("TextAfterSkippedElement", reader.nextTextContent()); reader.beginElement(); Assert.assertEquals("element", reader.nextElementName()); reader.endElement(); reader.endElement(); // end <foo> } finally { reader.close(); } }