Added an arg to sloppyPrint() so XML escapes can be toggled
This commit is contained in:
parent
30840f0480
commit
fa8ac1f6d1
2 changed files with 18 additions and 11 deletions
|
@ -327,7 +327,7 @@ public class ModUtilities {
|
|||
ByteArrayOutputStream tmpData = new ByteArrayOutputStream();
|
||||
Writer writer = new EOLWriter( new OutputStreamWriter( tmpData, encoder ), "\r\n" );
|
||||
|
||||
SloppyXMLOutputProcessor.sloppyPrint( mergedDoc, writer, encoding );
|
||||
SloppyXMLOutputProcessor.sloppyPrint( mergedDoc, writer, encoding, false );
|
||||
writer.flush();
|
||||
InputStream result = new ByteArrayInputStream( tmpData.toByteArray() );
|
||||
|
||||
|
@ -369,7 +369,7 @@ public class ModUtilities {
|
|||
ByteArrayOutputStream tmpData = new ByteArrayOutputStream();
|
||||
Writer writer = new EOLWriter( new OutputStreamWriter( tmpData, encoder ), "\r\n" );
|
||||
|
||||
SloppyXMLOutputProcessor.sloppyPrint( doc, writer, encoding );
|
||||
SloppyXMLOutputProcessor.sloppyPrint( doc, writer, encoding, false );
|
||||
writer.flush();
|
||||
InputStream result = new ByteArrayInputStream( tmpData.toByteArray() );
|
||||
|
||||
|
|
|
@ -154,12 +154,17 @@ public class SloppyXMLOutputProcessor extends AbstractXMLOutputProcessor {
|
|||
* is encoding bytes to match. If encoding is null, the default
|
||||
* is "UTF-8".
|
||||
*
|
||||
* There will be no XML character entity escaping, which would have allowed
|
||||
* otherwise unmappable characters to print without errors.
|
||||
* If XML character entity escaping is allowed, otherwise unmappable
|
||||
* characters may be written without errors. If disabled, an
|
||||
* UnmappableCharacterException will make their presence obvious and fatal.
|
||||
*
|
||||
* LineEndings will be CR-LF. Except for comments!?
|
||||
*
|
||||
* @param doc
|
||||
* @param writer
|
||||
* @param disableEscaping
|
||||
*/
|
||||
public static void sloppyPrint( Document doc, Writer writer, String encoding ) throws IOException {
|
||||
public static void sloppyPrint( Document doc, Writer writer, String encoding, boolean allowEscaping ) throws IOException {
|
||||
Format format = Format.getPrettyFormat();
|
||||
format.setTextMode( Format.TextMode.PRESERVE ); // Permit leading/trailing space.
|
||||
format.setExpandEmptyElements( false );
|
||||
|
@ -171,12 +176,14 @@ public class SloppyXMLOutputProcessor extends AbstractXMLOutputProcessor {
|
|||
format.setEncoding( encoding );
|
||||
}
|
||||
|
||||
if ( !allowEscaping ) {
|
||||
format.setEscapeStrategy(new EscapeStrategy() {
|
||||
@Override
|
||||
public boolean shouldEscape( char ch ) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
XMLOutputter outputter = new XMLOutputter( format, new SloppyXMLOutputProcessor() );
|
||||
outputter.output( doc, writer );
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue