Parsing an XML file with a DTD schema on a relative path

前端 未结 4 1620
陌清茗
陌清茗 2020-12-17 20:02

I have the following java code:


DocumentBuilder db=DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc=db.parse(new File(\"/opt/myfile\         


        
4条回答
  •  [愿得一人]
    2020-12-17 20:41

    Below code work for me, It ignore DTD

    Imports:

    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.IOException;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.EntityResolver;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    

    Code :

    File fileName = new File("XML File Path");
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
    EntityResolver resolver = new EntityResolver () {
    public InputSource resolveEntity (String publicId, String systemId) {
    String empty = "";
    ByteArrayInputStream bais = new ByteArrayInputStream(empty.getBytes());
                        System.out.println("resolveEntity:" + publicId + "|" + systemId);
                        return new InputSource(bais);
                        }
                        };
    documentBuilder.setEntityResolver(resolver); 
    Document document = documentBuilder.parse(fileName);
    

提交回复
热议问题