package com.awsle.aibatis.xml.engine.xml.dom; import com.awsle.aibatis.xml.engine.xml.CannotParseXMLException; import com.awsle.aibatis.xml.engine.xml.XMLReader; import com.awsle.aibatis.xml.engine.xml.XMLReaderDriver; import org.w3c.dom.Document; import org.xml.sax.SAXException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import java.io.ByteArrayInputStream; import java.io.IOException; public class DomXMLReaderDriver implements XMLReaderDriver { public XMLReader createReader(String xml) { try { DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); ByteArrayInputStream inputStream = new ByteArrayInputStream(xml.getBytes()); Document document = documentBuilder.parse(inputStream); return new DomXMLReader(document); } catch (FactoryConfigurationError e) { throw new CannotParseXMLException(e); } catch (ParserConfigurationException e) { throw new CannotParseXMLException(e); } catch (SAXException e) { throw new CannotParseXMLException(e); } catch (IOException e) { throw new CannotParseXMLException(e); } } }