Public Member Functions | |
XMLOutputter () | |
XMLOutputter (String indent) | |
XMLOutputter (String indent, boolean newlines) | |
XMLOutputter (String indent, boolean newlines, String encoding) | |
XMLOutputter (XMLOutputter that) | |
void | setLineSeparator (String separator) |
void | setNewlines (boolean newlines) |
void | setEncoding (String encoding) |
void | setOmitEncoding (boolean omitEncoding) |
void | setOmitDeclaration (boolean omitDeclaration) |
void | setExpandEmptyElements (boolean expandEmptyElements) |
void | setTrimAllWhite (boolean trimAllWhite) |
void | setTextTrim (boolean textTrim) |
void | setTextNormalize (boolean textNormalize) |
void | setIndent (String indent) |
void | output (Document doc, OutputStream out) throws IOException |
void | output (DocType doctype, OutputStream out) throws IOException |
void | output (Element element, OutputStream out) throws IOException |
void | outputElementContent (Element element, OutputStream out) throws IOException |
void | output (List list, OutputStream out) throws IOException |
void | output (CDATA cdata, OutputStream out) throws IOException |
void | output (Text text, OutputStream out) throws IOException |
void | output (Comment comment, OutputStream out) throws IOException |
void | output (ProcessingInstruction pi, OutputStream out) throws IOException |
void | output (EntityRef entity, OutputStream out) throws IOException |
void | output (Document doc, Writer out) throws IOException |
void | output (DocType doctype, Writer out) throws IOException |
void | output (Element element, Writer out) throws IOException |
void | outputElementContent (Element element, Writer out) throws IOException |
void | output (List list, Writer out) throws IOException |
void | output (CDATA cdata, Writer out) throws IOException |
void | output (Text text, Writer out) throws IOException |
void | output (Comment comment, Writer out) throws IOException |
void | output (ProcessingInstruction pi, Writer out) throws IOException |
void | output (EntityRef entity, Writer out) throws IOException |
String | outputString (Document doc) |
String | outputString (DocType doctype) |
String | outputString (Element element) |
String | outputString (List list) |
String | outputString (CDATA cdata) |
String | outputString (Text text) |
String | outputString (Comment comment) |
String | outputString (ProcessingInstruction pi) |
String | outputString (EntityRef entity) |
String | escapeAttributeEntities (String str) |
String | escapeElementEntities (String str) |
int | parseArgs (String[] args, int i) |
Object | clone () |
String | toString () |
void | output (String string, OutputStream out) throws IOException |
void | output (String string, Writer out) throws IOException |
void | setIndent (boolean doIndent) |
void | setIndent (int size) |
void | setIndentSize (int indentSize) |
String | outputString (String str) |
Protected Member Functions | |
Writer | makeWriter (OutputStream out) throws java.io.UnsupportedEncodingException |
Writer | makeWriter (OutputStream out, String enc) throws java.io.UnsupportedEncodingException |
void | printDeclaration (Document doc, Writer out, String encoding) throws IOException |
void | printDocType (DocType docType, Writer out) throws IOException |
void | printComment (Comment comment, Writer out) throws IOException |
void | printProcessingInstruction (ProcessingInstruction pi, Writer out) throws IOException |
void | printEntityRef (EntityRef entity, Writer out) throws IOException |
void | printCDATA (CDATA cdata, Writer out) throws IOException |
void | printText (Text text, Writer out) throws IOException |
void | printString (String str, Writer out) throws IOException |
void | printElement (Element element, Writer out, int level, NamespaceStack namespaces) throws IOException |
void | printContentRange (List content, int start, int end, Writer out, int level, NamespaceStack namespaces) throws IOException |
void | printTextRange (List content, int start, int end, Writer out) throws IOException |
void | printAttributes (List attributes, Element parent, Writer out, NamespaceStack namespaces) throws IOException |
void | newline (Writer out) throws IOException |
void | indent (Writer out, int level) throws IOException |
NamespaceStack | createNamespaceStack () |
Package Attributes | |
Format | noFormatting = new Format() |
Format | defaultFormat = new Format() |
Format | currentFormat = defaultFormat |
XMLOutputter
takes a JDOM tree and formats it to a stream as XML. The outputter can manage many styles of document formatting, from untouched to pretty printed. The default is to output the document content exactly as created, but this can be changed with the various set*()
methods.
There are output(…)
methods to print any of the standard JDOM classes, including
Document
and Element
, to either a Writer
or an OutputStream
. Warning: When outputting to a Writer, make sure the writer's encoding matches the encoding setting in the XMLOutputter. This ensures the encoding in which the content is written (controlled by the Writer configuration) matches the encoding placed in the document's XML declaration (controlled by the XMLOutputter). Because a Writer cannot be queried for its encoding, the information must be passed to the XMLOutputter manually in its constructor or via the setEncoding() method. The default XMLOutputter encoding is UTF-8.
The methods
outputString(…)
are for convenience only; for top performance you should call one of the output(…)
and pass in your own Writer
or OutputStream
if possible.
XML declarations are always printed on their own line followed by a line seperator (this doesn't change the semantics of the document). To omit printing of the declaration use
setOmitDeclaration
. To omit printing of the encoding in the declaration use setOmitEncoding
. Unfortunatly there is currently no way to know the original encoding of the document.
Empty elements are by default printed as <empty/>, but this can be configured with
setExpandEmptyElements
to cause them to be expanded to <empty></empty>.
Several modes are available to effect the way textual content is printed. All modes are configurable through corresponding set*() methods. Below is a table which explains the modes and the effect on the resulting output.
Text Mode Resulting behavior.
Default All content is printed in the format it was created, no whitespace or line separators are are added or removed.
TrimAllWhite Content between tags consisting of all whitespace is not printed. If the content contains even one non-whitespace character, it is printed verbatim, whitespace and all.
TextTrim Same as TrimAllWhite, plus leading/trailing whitespace are trimmed.
TextNormalize Same as TextTrim, in addition interior whitespace is compressed to a single space.
For pretty-print output, use
setNewlines
in conjunction with setIndent
. Setting newlines to true
causes tags to be aligned and possibly indented. With newlines true
, whitespace might be added back to fit alignment needs. In most cases texual content is aligned with the surrounding tags (after the appropriate text mode is applied). In the case where the only content between the start and end tags is textual, the start tag, text, and end tag are all printed on the same line.
When a element has a xml:space attribute with the value of "preserve", all formating is turned off and reverts back to the default until the element and its contents have been printed. If a nested element contains another xml:space with the value "default" formatting is turned back on for the child element and then off for the remainder of the parent element.
Jason Hunter
Jason Reid
Wolfgang Werner
Elliotte Rusty Harold
David & Will (from Post Tool Design)
Dan Schaffer
Alex Chaffee (alex@jguru.com)
Bradley S. Huffman
,
|
This will create an |
|
This will create an
|
|
This will create an
|
|
This will create an
|
|
This will create an
|
|
Returns a copy of this XMLOutputter. |
|
Factory for making new NamespaceStack objects. The NamespaceStack created is actually an inner class extending the package protected NamespaceStack, as a way to make NamespaceStack "friendly" toward subclassers. |
|
This will take the pre-defined entities in XML 1.0 and convert their character representation to the appropriate entity reference, suitable for XML attributes. It does no converstion for ' because it's not necessary as the outputter writes attributes surrounded by double-quotes.
|
|
This will take the three pre-defined entities in XML 1.0 (used specifically in XML elements) and convert their character representation to the appropriate entity reference, suitable for XML element content.
|
|
This will print indents (only if the newlines flag was set to
|
|
Get an OutputStreamWriter, use specified encoding. |
|
Get an OutputStreamWriter, using prefered encoding (see setEncoding). |
|
This will print a new line only if the newlines flag was set to true.
|
|
Print out a
|
|
Print out a
|
|
Print out a
|
|
Print out a
|
|
Print out a
|
|
Print out a
|
|
Print out a
|
|
This will handle printing out a list of nodes. This can be useful for printing the content of an element that contains HTML, like "<description>JDOM is <b>fun>!</description>".
|
|
Print out an
|
|
Print out the
|
|
This will print the Warning: using your own Writer may cause the outputter's preferred character encoding to be ignored. If you use encodings other than UTF-8, we recommend using the method that takes an OutputStream instead.
|
|
Print out a
|
|
Print out a
|
|
Print out a
|
|
Print out a
|
|
Print out a
|
|
This will handle printing out a list of nodes. This can be useful for printing the content of an element that contains HTML, like "<description>JDOM is <b>fun>!</description>".
|
|
Print out an
|
|
Print out the
|
|
This will print the
|
|
This will handle printing out an
|
|
This will handle printing out an
|
|
Return a string representing (with trimming, normalization, and escaping possibly applied) a
|
|
Return a string representing an entity. Warning: a String is Unicode, which may not match the outputter's specified encoding.
|
|
Return a string representing a PI. Warning: a String is Unicode, which may not match the outputter's specified encoding.
|
|
Return a string representing a comment. Warning: a String is Unicode, which may not match the outputter's specified encoding.
|
|
Return a string representing a Text node. Warning: a String is Unicode, which may not match the outputter's specified encoding.
|
|
Return a string representing a CDATA node. Warning: a String is Unicode, which may not match the outputter's specified encoding.
|
|
Return a string representing a list of nodes. The list is assumed to contain legal JDOM nodes.
|
|
Return a string representing an element. Warning: a String is Unicode, which may not match the outputter's specified encoding.
|
|
Return a string representing a DocType. Warning: a String is Unicode, which may not match the outputter's specified encoding.
|
|
Return a string representing a document. Uses an internal StringWriter. Warning: a String is Unicode, which may not match the outputter's specified encoding.
|
|
Parse command-line arguments of the form
|
|
This will handle printing of a
|
|
This will handle printing of
|
|
This will handle printing of comments.
|
|
This will handle printing of content within a given range. The range to print is specified in typical Java fashion; the starting index is inclusive, while the ending index is exclusive.
|
|
This will handle printing of the declaration. Assumes XML version 1.0 since we don't directly know.
|
|
This handle printing the DOCTYPE declaration if one exists.
|
|
This will handle printing of a
|
|
This will handle printing a
|
|
This will handle printing of processing instructions.
|
|
This will handle printing a string. Escapes the element entities, trims interior whitespace, etc. if necessary. |
|
This will handle printing of
|
|
This will handle printing of a sequence of
|
|
Sets the output encoding. The name should be an accepted XML encoding.
|
|
This will set whether empty elements are expanded from
|
|
This will set the indent
|
|
Set the indent on or off, newlines must be set to
|
|
This will set the indent
|
|
This will set the indent
|
|
This will set the newline separator (
To output "UNIX-style" documents, call
Note that this only applies to newlines generated by the outputter. If you parse an XML document that contains newlines embedded inside a text node, and you do not call
|
|
Sets whether newlines (
|
|
This will set whether the XML declaration (
|
|
This will set whether the XML declaration (
|
|
This will set whether the text is output verbatim (false) or with whitespace normalized as per Default: false
|
|
This will set whether the text has leading/trailing whitespace trimmed. Default: false
|
|
This will set whether content between tags consisting of all whitespace is printed or trimmed. Default: false
|
|
Return a string listing of the settings for this XMLOutputter instance.
|