Description
Transform document to string representation.
License
Apache License
Parameter
Parameter | Description |
---|
document | XHTML document |
Exception
Parameter | Description |
---|
TransformerException | if it is not possible to create a Transformer instance or to transform document |
Return
string representation of document
Declaration
public static String toString(final Document document) throws TransformerException
Method Source Code
//package com.java2s;
/*//from www . ja v a2s .c o m
* Copyright 2007-2012 AjaxTags-Team
*
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
import java.io.StringWriter;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
public class Main {
/** Value for transformer output properties. */
private static final String TRANSFORMER_YES = "yes";
/** TransformerFactory. */
private static final ThreadLocal<TransformerFactory> TRANSFORMER_FACTORY = new ThreadLocal<TransformerFactory>() {
@Override
protected TransformerFactory initialValue() {
return TransformerFactory.newInstance();
}
};
/**
* Transform document to string representation.
*
* @param document
* XHTML document
* @return string representation of document
* @throws TransformerException
* if it is not possible to create a Transformer instance or to transform document
*/
public static String toString(final Document document) throws TransformerException {
final StringWriter stringWriter = new StringWriter();
final StreamResult streamResult = new StreamResult(stringWriter);
final Transformer transformer = TRANSFORMER_FACTORY.get().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, TRANSFORMER_YES);
// set indent for XML
transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount", "2");
// not all JavaSE have the same implementation
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
// transformer.setOutputProperty(OutputKeys.METHOD, "html");
// html method transforms <br/> into <br>, which cannot be re-parsed
// transformer.setOutputProperty(OutputKeys.METHOD, "xhtml");
// xhtml method does not work for my xalan transformer
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, TRANSFORMER_YES);
transformer.transform(new DOMSource(document.getDocumentElement()), streamResult);
return stringWriter.toString();
}
}
Related
- toString(Document document)
- toString(Document document)
- toString(Document document)
- toString(Document document)
- toString(Document document)
- toString(final Document document)
- toString(final Document document, final boolean indent, final boolean omitXmlDeclaration)
- toString(Node document)
- toStringFromDoc(Document document)