Java XML: Utilisation de InputSource pour Lire une sources Uri

Author:

Java XML: Utilisation de InputSource pour les Lire une sources Uri
{filelink=8713}

/***** Code de MesExemples.com *******/
 /* * 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 * *      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.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.OutputStream;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 javax.xml.transform.stream.StreamResult;import javax.xml.transform.stream.StreamSource;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());          isource.setByteStream(ss.getInputStream());          isource.setCharacterStream(ss.getReader());          isource.setPublicId(ss.getPublicId());          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);  }}     

Code testé avec le fichier XML Suivant




	Sakoba
	Adams
	Rappel
	Ne m'oubliez pas ce week-end!

A Voir sur le même Sujet:

  • exemple de code java