1 28 29 package com.caucho.quercus.lib.simplexml; 30 31 import com.caucho.quercus.annotation.NotNull; 32 import com.caucho.quercus.annotation.Optional; 33 import com.caucho.quercus.env.Env; 34 import com.caucho.quercus.module.AbstractQuercusModule; 35 import com.caucho.util.L10N; 36 import com.caucho.vfs.Path; 37 38 import org.w3c.dom.Document ; 39 40 import javax.xml.parsers.DocumentBuilder ; 41 import javax.xml.parsers.DocumentBuilderFactory ; 42 import java.io.InputStream ; 43 import java.util.logging.Level ; 44 import java.util.logging.Logger ; 45 46 49 public class SimpleXMLModule 50 extends AbstractQuercusModule 51 { 52 private static final Logger log 53 = Logger.getLogger(SimpleXMLModule.class.getName()); 54 private static final L10N L = new L10N(SimpleXMLModule.class); 55 56 public SimpleXMLElement simplexml_load_string(Env env, 57 InputStream data, 58 @Optional String className, 59 @Optional int options) 60 { 61 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 62 63 try { 64 DocumentBuilder builder = factory.newDocumentBuilder(); 65 66 Document document = builder.parse(data); 67 68 return new SimpleXMLElement(env, document, document.getDocumentElement()); 69 } catch (Exception e) { 70 log.log(Level.FINE, L.l(e.toString()), e); 71 return null; 72 } 73 } 74 75 public SimpleXMLElement simplexml_load_file(Env env, 76 @NotNull Path file, 77 @Optional String className, 78 @Optional int options) 79 { 80 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 81 82 try { 83 DocumentBuilder builder = factory.newDocumentBuilder(); 84 Document document = builder.parse(file.openRead()); 85 86 return new SimpleXMLElement(env, document, document.getDocumentElement()); 87 } catch (Exception e) { 88 log.log(Level.FINE, L.l(e.toString()), e); 89 return null; 90 } 91 } 92 93 } 95 | Popular Tags |