orbeon-bluedb-integration/integration-module/src/main/java/hycom/service/XMLSerialize.java

48 lines
1.7 KiB
Java

package hycom.service;
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.springframework.stereotype.Service;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
* Serwis do parsowania formularza (String -> XML)
*/
@Service
public class XMLSerialize {
/**
* Konwerter XML
* @param stringXML Formularz aplikacji
* @return dokument XML
* @throws ParserConfigurationException Wyjątek wyrzucany, w przypadku próby parsowania nie odpowiedniego pliku.
* @throws IOException Wyjątek wyrzucany, w przypadku odczytywania z zamkniętego strumienia danych.
* @throws SAXException Wyjątek wyrzucany, w przypadku nieudanego budowania pliku dokumentu.
*/
public static Document parseStringToXML(String stringXML) throws ParserConfigurationException, IOException, SAXException {
Document document;
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
InputSource inputSource = new InputSource(new StringReader(stringXML));
document = documentBuilder.parse(inputSource);
StringWriter out = new StringWriter();
OutputFormat format = new OutputFormat(document);
format.setIndenting(true);
XMLSerializer serializer = new XMLSerializer(out, format);
serializer.serialize(document);
return document;
}
}