Source To InputSource : XML Data « XML « Java

Source To InputSource

 * Copyright  2003-2008 The Apache Software Foundation.
 *  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
 *  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 javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXSource;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;

public class Main {

  public static void ElementToStream(Element element, OutputStream out) {
    try {
      DOMSource source = new DOMSource(element);
      StreamResult result = new StreamResult(out);
      TransformerFactory transFactory = TransformerFactory.newInstance();
      Transformer transformer = transFactory.newTransformer();
      transformer.transform(source, result);
    } catch (Exception ex) {
   * Utility to get the bytes uri
   * @param source the resource to get
  public static InputSource sourceToInputSource(Source source) {
      if (source instanceof SAXSource) {
          return ((SAXSource) source).getInputSource();
      } else if (source instanceof DOMSource) {
          ByteArrayOutputStream baos = new ByteArrayOutputStream();
          Node node = ((DOMSource) source).getNode();
          if (node instanceof Document) {
              node = ((Document) node).getDocumentElement();
          Element domElement = (Element) node;
          ElementToStream(domElement, baos);
          InputSource isource = new InputSource(source.getSystemId());
          isource.setByteStream(new ByteArrayInputStream(baos.toByteArray()));
          return isource;
      } else if (source instanceof StreamSource) {
          StreamSource ss = (StreamSource) source;
          InputSource isource = new InputSource(ss.getSystemId());
          return isource;
      } else {
          return getInputSourceFromURI(source.getSystemId());

   * Utility to get the bytes uri.
   * Does NOT handle authenticated URLs,
   * use getInputSourceFromURI(uri, username, password)
   * @param uri the resource to get
  public static InputSource getInputSourceFromURI(String uri) {
      return new InputSource(uri);


Related examples in the same category

1.Streaming XML
2.extends DefaultHandler to create a XML binding
3.Your won XML binding
4.Parse and format xs:dateTime values
5.Replaces all XML character entities with the character they represent.
6.Sniffed Xml InputStream to find out the declaration and file encoding
7.Whether the given character is a valid XML space.
8.JAXP 1.3 Datatype API
9.Common XML constants.
10.Sniffed Xml Reader
11.Utility class for working with xml data
12.whether the given 32 bit character is a valid XML 1.1 character.