Description
Transform a DOM Node into an XML String.
License
Open Source License
Parameter
Parameter | Description |
---|
node | the source |
Exception
Parameter | Description |
---|
TransformerException | couldn't do it |
Return
an XML String representation of the specified Node
Declaration
public static String toString(Node node) throws TransformerException
Method Source Code
//package com.java2s;
/**/* w w w. j a v a2s . 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 org.w3c.dom.Node;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.InputStream;
import java.io.StringWriter;
public class Main {
private static TransformerFactory tFactory = TransformerFactory
.newInstance();
/**
* Transform a DOM Node into an XML String.
*
* @param node the source
* @return an XML String representation of the specified Node
* @throws TransformerException couldn't do it
*/
public static String toString(Node node) throws TransformerException {
return toString(node, true);
}
/**
* Transform a DOM Node into an XML String
*
* @param node the source
* @param omitXMLDeclaration true if you don't want it
* @return an XML String representation of the specified Node
* @throws TransformerException couldn't get it
*/
public static String toString(Node node, boolean omitXMLDeclaration)
throws TransformerException {
StringWriter writer = new StringWriter();
Transformer transformer = getThreadedIdentityTransformer(omitXMLDeclaration);
Source source = new DOMSource(node);
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 true if you don't want it
* @return an "identity" Transformer assigned to the current thread
* @throws TransformerConfigurationException
* couldn't get it
*/
public static Transformer getThreadedIdentityTransformer(
boolean omitXmlDeclaration)
throws TransformerConfigurationException {
return getTransformer(omitXmlDeclaration, null);
}
/**
* Get a thread-safe Transformer.
*
* @param omitXmlDeclaration true if you don't want it
* @param xslURL todo: explain
* @return a thread-safe Transformer
* @throws TransformerConfigurationException
*
*/
public static Transformer getTransformer(boolean omitXmlDeclaration,
String xslURL) throws TransformerConfigurationException {
return getTransformer(omitXmlDeclaration, true, xslURL);
}
/**
* @param omitXmlDeclaration
* @param standalone
* @param xslURL
* @return a Transformer for the specified XSL document
* @throws TransformerConfigurationException
*
*/
public static Transformer getTransformer(boolean omitXmlDeclaration,
boolean standalone, String xslURL)
throws TransformerConfigurationException {
Transformer transformer = null;
if (xslURL == null) {
transformer = tFactory.newTransformer(); // "never null"
} else {
Source xslSource = null;
if (xslURL.startsWith("file://")) {
InputStream is = Thread.currentThread()
.getContextClassLoader()
.getResourceAsStream(xslURL.substring(6));
xslSource = new StreamSource(is);
} else {
xslSource = new StreamSource(xslURL);
}
transformer = tFactory.newTransformer(xslSource);
}
// transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.STANDALONE,
standalone ? "yes" : "no");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
omitXmlDeclaration ? "yes" : "no");
return transformer;
}
}
Related
- toString(Node node)
- toString(Node node)
- toString(Node node)
- toString(Node node)
- toString(Node node)
- toString(Node node)
- toString(Node node, boolean formatted)
- toString(Node node, int level, boolean indent)
- toString(Node node, Map outputProperties)