[xml] (XML) The markup in the document following the root element must be well-formed. Start location: 6:2

Just started out in my XML class and having a bit of trouble finding a solution to my error. I get this error: "The markup in the document following the root element must be well-formed. Start location: 6:2".

Any kind of hint or help would be great.

 <?xml version="1.0" encoding="UTF-8"?>
 <heading>
 The Twelve Days of Christmas
 </heading>

<song> //OxyGen highlights "<song>" as the error, but i'm not sure I understand.
    <Day ="One"> 
        <verse>
    On the first day of Christmas, my true love sent to me, a partridge in a pear tree.
        </verse>
    </Day>

    <Day="Two">
        <verse>
     On the second day of Christmas, my true love sent to me 
     Two turtle doves 
     and a partridge in a pear tree. 
        </verse>
    </Day>

     <Day="Three"> 
         <verse>
     On the third day of Christmas, my true love sent to me 
     Three French hens, 
     two turtle doves 
     And a partridge in a pear tree.
         </verse>
     </Day>

     <Day="Four">
         <verse>
     On the fourth day of Christmas, my true love sent to me 
     Four calling birds, 
     three French hens, 
     two turtle doves 
     And a partridge in a pear tree. 
         </verse>
     </Day>

     <Day="Fifth">
         <verse>
     On the fifth day of Christmas, my true love sent to me 
     Five golden rings. 
     Four calling birds, 
     three French hens, 
     two turtle doves 
     And a partridge in a pear tree.
         </verse>
     </Day>

     <Day="Sixth">
         <verse>
     On the sixth day of Christmas, my true love gave to me 
     Six geese a-laying, 
     Five golden rings. 
     Four calling birds, 
     three French hens, 
     two turtle doves 
     And a partridge in a pear tree. 
         </verse>
     </Day>

     <Day="Seventh">
         <verse>
     On the seventh day of Christmas, my true love gave to me 
     Seven swans a-swimming, 
     six geese a-laying, 
     Five golden rings. 
     Four calling birds, 
     three French hens, 
     two turtle doves 
     And a partridge in a pear tree. 
         </verse>
     </Day>

     <Day="Eighth">
         <verse>
     On the eighth day of Christmas, my true love gave to me 
     Eight maids a-milking, 
     seven swans a-swimming, 
     six geese a-laying, 
     Five golden rings. 
     Four calling birds, 
     three French hens, 
     two turtle doves 
     And a partridge in a pear tree. 
         </verse>
     </Day>

     <Day="Ninth">
         <verse>
     On the ninth day of Christmas, my true love gave to me 
     Nine ladies dancing, 
     eight maids a-milking, 
     seven swans a-swimming, 
     six geese a-laying, 
     Five golden rings. 
     Four calling birds, 
     three French hens, 
     two turtle doves 
     And a partridge in a pear tree. 
         </verse>
     </Day>

     <Day="Tenth">
         <verse>
     On the tenth day of Christmas, my true love gave to me 
     Ten lords a-leaping, 
     nine ladies dancing, 
     eight maids a-milking, 
     seven swans a-swimming, 
     six geese a-laying, 
     Five golden rings. 
     Four calling birds, 
     three French hens, 
     two turtle doves 
     And a partridge in a pear tree. 
         </verse>
     </Day>

     <Day="Eleventh">
         <verse>
     On the eleventh day of Christmas, my true love gave to me 
     Eleven pipers piping, 
     ten lords a-leaping, 
     nine ladies dancing, 
     eight maids a-milking, 
     seven swans a-swimming, 
     six geese a-laying, 
     Five golden rings. 
     Four calling birds, 
     three French hens, 
     two turtle doves 
     And a partridge in a pear tree. 
         </verse>
     </Day>

     <Day="Twelfth">
         <verse>
     On the twelfth day of Christmas, my true love gave to me 
     Twelve drummers drumming, 
     eleven pipers piping, 
     ten lords a-leaping, 
     nine ladies dancing, 
     eight maids a-milking, 
     seven swans a-swimming, 
     six geese a-laying, 
     Five golden rings. 
     Four calling birds, 
     three French hens, 
     two turtle doves 
     And a partridge in a pear tree. 
         </verse>
     </Day>

 </song>

This question is related to xml

The answer is


In XML there can be only one root element - you have two - heading and song.

If you restructure to something like:

<?xml version="1.0" encoding="UTF-8"?>
<song> 
 <heading>
 The Twelve Days of Christmas
 </heading>
 ....
</song>

The error about well-formed XML on the root level should disappear (though there may be other issues).


After insuring that the string "strOutput" has a correct XML structure, you can do this:

Matcher junkMatcher = (Pattern.compile("^([\\W]+)<")).matcher(strOutput);
strOutput = junkMatcher.replaceFirst("<");