Intercepting All Accesses to External Entities During XML SAX Parsing : EntityResolver « XML « Java






Intercepting All Accesses to External Entities During XML SAX Parsing

   

import java.io.File;
import java.io.FileReader;
import java.net.URI;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;

public class Main {
  public static void main(String[] argv) throws Exception {
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    builder.setEntityResolver(new MyResolver());
    Document doc = builder.parse(new File("infilename.xml"));
  }
}
class MyResolver implements EntityResolver {
  public InputSource resolveEntity(String publicId, String systemId) {
    try {
      URI uri = new URI(systemId);
      if ("file".equals(uri.getScheme())) {
        String filename = uri.getSchemeSpecificPart();
        return new InputSource(new FileReader(filename));
      }
    } catch (Exception e) {
    }
    return null;
  }
}

   
    
    
  








Related examples in the same category

1.implements EntityResolver
2.Getting the Value of an Entity Reference in a DOM Document
3.Resolving entities found in source XML during parsing
4.Preventing Expansion of Entity References While Parsing an XML File
5.Resolves an entity reference or character reference to its value.