Description
Transform a DOM Node into an XML String.
License
Open Source License
Parameter
Parameter | Description |
---|
node | a parameter |
Exception
Parameter | Description |
---|
TransformerException | an exception |
Return
an XML String representation of the specified Node
Declaration
public static String toString(final Node node) throws TransformerException
Method Source Code
//package com.java2s;
/**/*w w w. j a v a 2 s .c o m*/
* Copyright 2006 OCLC Online Computer Library Center 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 java.util.Map;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.w3c.dom.Node;
public class Main {
private static TransformerFactory tFactory = TransformerFactory.newInstance();
/**
* Transform a DOM Node into an XML String.
*
* @param node
* @return an XML String representation of the specified Node
* @throws TransformerException
*/
public static String toString(final Node node) throws TransformerException {
return toString(node, true);
}
/**
* Transform a DOM Node into an XML String
*
* @param node
* @param omitXMLDeclaration
* @return an XML String representation of the specified Node
* @throws TransformerException
*/
public static String toString(final Node node, final boolean omitXMLDeclaration) throws TransformerException {
final StringWriter writer = new StringWriter();
final Transformer transformer = getThreadedIdentityTransformer(omitXMLDeclaration);
final Source source = new DOMSource(node);
final Result result = new StreamResult(writer);
transformer.transform(source, result);
return writer.toString();
}
/**
* Get a thread-safe Transformer without an assigned transform. This is useful for transforming a DOM Document into
* XML text.
*
* @param omitXmlDeclaration
* @return an "identity" Transformer assigned to the current thread
* @throws TransformerConfigurationException
*/
public static Transformer getThreadedIdentityTransformer(final boolean omitXmlDeclaration)
throws TransformerConfigurationException {
return getThreadedTransformer(omitXmlDeclaration, null, (String) null);
}
/**
* Get a thread-safe Transformer without an assigned transform. This is useful for transforming a DOM Document into
* XML text.
*
* @param omitXmlDeclaration
* @param standalone
* @return an Identity Transformer
* @throws TransformerConfigurationException
*/
public static Transformer getThreadedIdentityTransformer(final boolean omitXmlDeclaration,
final boolean standalone) throws TransformerConfigurationException {
return getThreadedTransformer(omitXmlDeclaration, standalone, null, (String) null);
}
private static Transformer getThreadedTransformer(final boolean omitXmlDeclaration, final boolean standalone,
final Map<Thread, Transformer> threadMap, final String xslURL)
throws TransformerConfigurationException {
final Thread currentThread = Thread.currentThread();
Transformer transformer = null;
if (threadMap != null) {
transformer = threadMap.get(currentThread);
}
if (transformer == null) {
if (xslURL == null) {
transformer = tFactory.newTransformer(); // "never null"
} else {
transformer = tFactory.newTransformer(new StreamSource(xslURL));
}
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
if (threadMap != null) {
threadMap.put(currentThread, transformer);
}
}
transformer.setOutputProperty(OutputKeys.STANDALONE, standalone ? "yes" : "no");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, omitXmlDeclaration ? "yes" : "no");
return transformer;
}
/**
* Get a thread-safe Transformer.
*
* @param omitXmlDeclaration
* @param threadMap
* @param xslURL
* @return a thread-safe Transformer
* @throws TransformerConfigurationException
*/
public static Transformer getThreadedTransformer(final boolean omitXmlDeclaration,
final Map<Thread, Transformer> threadMap, final String xslURL)
throws TransformerConfigurationException {
return getThreadedTransformer(omitXmlDeclaration, true, threadMap, xslURL);
}
}
Related
- nodeToText(Node node)
- nodeToWriter(Node node, Writer writer)
- nodeToXmlString(Node node)
- stringifyNode(Node node)
- toHtml(StringBuffer html, Node node)
- toString(final Node node)
- toString(final Node node)
- toString(final Node xml)
- toString(final short nodeType)