001 /* 002 * To change this template, choose Tools | Templates 003 * and open the template in the editor. 004 */ 005 006 package org.util.xml.io; 007 008 import org.util.xml.parse.policy.*; 009 import org.util.xml.parse.*; 010 import org.util.xml.element.*; 011 import java.net.*; 012 import java.io.*; 013 014 /** 015 * 016 * @author masaru 017 */ 018 public class XMLIO { 019 020 public static TagElement read(StringBuffer xml_text) throws IOException, XMLParseException { 021 return read(new StringReader(xml_text.toString())); 022 } 023 public static TagElement read(URL url) throws IOException, XMLParseException { 024 return read(url.openStream()); 025 } 026 public static TagElement read(URL url, String encoding) throws IOException, XMLParseException { 027 return read(url.openStream(), encoding); 028 } 029 public static TagElement read(String file_name_or_url) throws IOException, XMLParseException { 030 return read(findURL(file_name_or_url)); 031 } 032 public static TagElement read(String file_name_or_url, String encoding) throws IOException, XMLParseException { 033 return read(new URL(file_name_or_url), encoding); 034 } 035 public static TagElement read(File file) throws IOException, XMLParseException { 036 return read(file.toURI().toURL()); 037 } 038 public static TagElement read(File file, String encoding) throws IOException, XMLParseException { 039 return read(file.toURI().toURL(), encoding); 040 } 041 public static TagElement read(InputStream in, String encoding) throws IOException, XMLParseException { 042 return read(new InputStreamReader(in, encoding)); 043 } 044 public static TagElement read(InputStream in) throws IOException, XMLParseException { 045 ElementParser parser = new ElementParser(in); 046 parser.setPolicy(new XMLParserPolicy()); 047 parser.parse(); 048 return parser.getFirstPlainTagElement(); 049 } 050 public static TagElement read(Reader r) throws IOException, XMLParseException { 051 ElementParser parser = new ElementParser(r); 052 parser.setPolicy(new XMLParserPolicy()); 053 parser.parse(); 054 return parser.getFirstPlainTagElement(); 055 } 056 057 protected static URL findURL(String name) throws IOException, XMLParseException { 058 File file = new File(name); 059 if(file.exists()) { 060 return file.toURI().toURL(); 061 } 062 URL url = ClassLoader.getSystemResource(name); 063 if(url != null) { 064 return url; 065 } 066 throw new IOException("cannot find resource: "+name); 067 } 068 069 public static void write(File file, Element element) throws IOException, XMLParseException { 070 write(new FileWriter(file), element); 071 } 072 073 public static void write(Writer writer, Element element) throws IOException, XMLParseException { 074 element.write(writer); 075 } 076 }