All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.giffing.easyxml.ReaderToWriter Maven / Gradle / Ivy

There is a newer version: 0.0.8
Show newest version
package com.giffing.easyxml;

/*   Copyright 2004 BEA Systems, Inc.
 *
 *   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 javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import javax.xml.stream.events.XMLEvent;

/**
 * 

* Automatically write a reader. *

*/ public class ReaderToWriter { private XMLStreamWriter writer; public ReaderToWriter() { } public ReaderToWriter(XMLStreamWriter xmlw) { writer = xmlw; } public void setStreamWriter(XMLStreamWriter xmlw) { writer = xmlw; } public void write(XMLStreamReader xmlr) throws XMLStreamException { switch (xmlr.getEventType()) { case XMLEvent.START_ELEMENT: String prefix = xmlr.getPrefix(); String namespaceURI = xmlr.getNamespaceURI(); if (namespaceURI != null) { if (prefix != null) writer.writeStartElement(xmlr.getPrefix(), xmlr.getLocalName(), xmlr.getNamespaceURI()); else writer.writeStartElement(xmlr.getNamespaceURI(), xmlr.getLocalName()); } else { writer.writeStartElement(xmlr.getLocalName()); } for (int i = 0; i < xmlr.getNamespaceCount(); i++) { writer.writeNamespace(xmlr.getNamespacePrefix(i), xmlr.getNamespaceURI(i)); } for (int i = 0; i < xmlr.getAttributeCount(); i++) { if (xmlr.getAttributePrefix(i).equals("xsi")) { writer.writeAttribute(xmlr.getAttributePrefix(i), xmlr.getAttributeNamespace(i), xmlr.getAttributeLocalName(i), xmlr.getAttributeValue(i)); } else { writer.writeAttribute(xmlr.getAttributeLocalName(i), xmlr.getAttributeValue(i)); } } break; case XMLEvent.END_ELEMENT: writer.writeEndElement(); break; case XMLEvent.SPACE: case XMLEvent.CHARACTERS: writer.writeCharacters(xmlr.getTextCharacters(), xmlr.getTextStart(), xmlr.getTextLength()); break; case XMLEvent.PROCESSING_INSTRUCTION: writer.writeProcessingInstruction(xmlr.getPITarget(), xmlr.getPIData()); break; case XMLEvent.CDATA: writer.writeCData(xmlr.getText()); break; case XMLEvent.COMMENT: writer.writeComment(xmlr.getText()); break; case XMLEvent.ENTITY_REFERENCE: writer.writeEntityRef(xmlr.getLocalName()); break; case XMLEvent.START_DOCUMENT: String encoding = xmlr.getCharacterEncodingScheme(); String version = xmlr.getVersion(); if (encoding != null && version != null) writer.writeStartDocument(encoding, version); else if (version != null) writer.writeStartDocument(xmlr.getVersion()); break; case XMLEvent.END_DOCUMENT: writer.writeEndDocument(); break; case XMLEvent.DTD: writer.writeDTD(xmlr.getText()); break; } } public XMLStreamWriter writeAll(XMLStreamReader xmlr) throws XMLStreamException { while (xmlr.hasNext()) { write(xmlr); xmlr.next(); } writer.flush(); return writer; } public static void main(String args[]) throws Exception { XMLInputFactory xmlif = XMLInputFactory.newInstance(); XMLOutputFactory xmlof = XMLOutputFactory.newInstance(); XMLStreamReader xmlr = xmlif.createXMLStreamReader(new java.io.FileReader(args[0])); XMLStreamWriter xmlw = xmlof.createXMLStreamWriter(System.out); ReaderToWriter rtow = new ReaderToWriter(xmlw); while (xmlr.hasNext()) { rtow.write(xmlr); xmlr.next(); } xmlw.flush(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy