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; } }