@@ -1622,4 +1622,46 @@ public void testUnicode() throws IOException {
1622
1622
fail ( "should not raise exception: " + e );
1623
1623
}
1624
1624
}
1625
+
1626
+ @ Test
1627
+ public void testProcessingInstructionTokenizeBeforeFirstTag ()
1628
+ throws Exception
1629
+ {
1630
+ String input = "<?a?><test>nnn</test>" ;
1631
+
1632
+ MXParser parser = new MXParser ();
1633
+ parser .setInput ( new StringReader ( input ) );
1634
+
1635
+ assertEquals ( XmlPullParser .START_DOCUMENT , parser .getEventType () );
1636
+ assertEquals ( XmlPullParser .PROCESSING_INSTRUCTION , parser .nextToken () );
1637
+ assertEquals ( "a" , parser .getText () );
1638
+ assertEquals ( XmlPullParser .START_TAG , parser .nextToken () );
1639
+ assertEquals ( "test" , parser .getName () );
1640
+ assertEquals ( XmlPullParser .TEXT , parser .nextToken () );
1641
+ assertEquals ( "nnn" , parser .getText () );
1642
+ assertEquals ( XmlPullParser .END_TAG , parser .nextToken () );
1643
+ assertEquals ( XmlPullParser .END_DOCUMENT , parser .nextToken () );
1644
+ }
1645
+
1646
+ @ Test
1647
+ public void testProcessingInstructionTokenizeAfterXMLDeclAndBeforeFirstTag ()
1648
+ throws Exception
1649
+ {
1650
+ String input = "<?xml version=\" 1.0\" encoding=\" UTF-8\" ?><?a?><test>nnn</test>" ;
1651
+
1652
+ MXParser parser = new MXParser ();
1653
+ parser .setInput ( new StringReader ( input ) );
1654
+
1655
+ assertEquals ( XmlPullParser .START_DOCUMENT , parser .getEventType () );
1656
+ assertEquals ( XmlPullParser .PROCESSING_INSTRUCTION , parser .nextToken () );
1657
+ assertEquals ( "xml version=\" 1.0\" encoding=\" UTF-8\" " , parser .getText () );
1658
+ assertEquals ( XmlPullParser .PROCESSING_INSTRUCTION , parser .nextToken () );
1659
+ assertEquals ( "a" , parser .getText () );
1660
+ assertEquals ( XmlPullParser .START_TAG , parser .nextToken () );
1661
+ assertEquals ( "test" , parser .getName () );
1662
+ assertEquals ( XmlPullParser .TEXT , parser .nextToken () );
1663
+ assertEquals ( "nnn" , parser .getText () );
1664
+ assertEquals ( XmlPullParser .END_TAG , parser .nextToken () );
1665
+ assertEquals ( XmlPullParser .END_DOCUMENT , parser .nextToken () );
1666
+ }
1625
1667
}
0 commit comments