@@ -2075,7 +2075,9 @@ public static void writeXml(Map map, String name, XmlStringBuilder builder, bool
20752075 }
20762076 elems .add (new XmlStringBuilderWithoutHeader (ident ).append (escape (value )));
20772077 } else if ("#comment" .equals (escape (String .valueOf (entry .getKey ())))) {
2078- addComment (entry , ident , index , entries , elems );
2078+ addComment (entry , ident , index < entries .size () - 1 , elems , "<!--" , "-->" );
2079+ } else if ("#cdata-section" .equals (escape (String .valueOf (entry .getKey ())))) {
2080+ addComment (entry , ident , index < entries .size () - 1 , elems , "<![CDATA[" , "]]>" );
20792081 } else if (entry .getValue () instanceof List && !((List ) entry .getValue ()).isEmpty ()) {
20802082 XmlStringBuilder localBuilder = new XmlStringBuilderWithoutHeader (ident );
20812083 XmlArray .writeXml ((List ) entry .getValue (), localBuilder ,
@@ -2117,25 +2119,27 @@ public static void writeXml(Map map, String name, XmlStringBuilder builder, bool
21172119 }
21182120 }
21192121
2120- private static void addComment (Map .Entry entry , int ident , int index , List < Map . Entry > entries ,
2121- List <XmlStringBuilder > elems ) {
2122+ private static void addComment (Map .Entry entry , int ident , boolean addNewLine ,
2123+ List <XmlStringBuilder > elems , String openElement , String closeElement ) {
21222124 if (entry .getValue () instanceof List ) {
21232125 for (Iterator iterator = ((List ) entry .getValue ()).iterator (); iterator .hasNext (); ) {
2124- XmlStringBuilder localBuilder = new XmlStringBuilderWithoutHeader (ident )
2125- .fillSpaces ().append ("<!--" ).append ((String ) iterator .next ()).append ("-->" );
2126- if (iterator .hasNext () || index < entries .size () - 1 ) {
2127- localBuilder .newLine ();
2128- }
2129- elems .add (localBuilder );
2126+ addCommentValue (ident , (String ) iterator .next (),
2127+ iterator .hasNext () || addNewLine , elems , openElement , closeElement );
21302128 }
21312129 } else {
2132- XmlStringBuilder localBuilder = new XmlStringBuilderWithoutHeader (ident )
2133- .fillSpaces ().append ("<!--" ).append ((String ) entry .getValue ()).append ("-->" );
2134- if (index < entries .size () - 1 ) {
2135- localBuilder .newLine ();
2136- }
2137- elems .add (localBuilder );
2130+ addCommentValue (ident , (String ) entry .getValue (), addNewLine , elems ,
2131+ openElement , closeElement );
2132+ }
2133+ }
2134+
2135+ private static void addCommentValue (int ident , String value , boolean addNewLine ,
2136+ List <XmlStringBuilder > elems , String openElement , String closeElement ) {
2137+ XmlStringBuilder localBuilder = new XmlStringBuilderWithoutHeader (ident )
2138+ .fillSpaces ().append (openElement ).append (value ).append (closeElement );
2139+ if (addNewLine ) {
2140+ localBuilder .newLine ();
21382141 }
2142+ elems .add (localBuilder );
21392143 }
21402144 }
21412145
0 commit comments