怎样让builder.parse()忽略DTD找不到的错误继续分析?

popodai 2003-09-10 10:52:08
DocumentBuilderFactory factory = DocumnetBuilderFactory.newInstance();
factory.setValidating(false);
DocumentBuilder bulider = factory.newDocumentBuilder();
org.w3c.dom.Document loDoc = builder.parse(loTargetXmlFile);
DOMBuilder domBuilder = new DOMBuilder();
Documnet poDoc = domBuilder.build(loDoc);
---------------------------------------------------
执行org.w3c.dom.Document loDoc = builder.parse(loTargetXmlFile);
抛出SAXException.
是因为loTargetXmlFile中指定的DTD找不到。

现在需要即使指定的DTD找不到,也能继续分析。
应该怎么处理???
...全文
41 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
popodai 2003-09-11
  • 打赏
  • 举报
回复
谢谢这个办法确实可行,可是如下。
myDocumentBuilder.setEntityResolver(new EntityResolver() {
public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
throws SAXException, java.io.IOException
{
System.out.println("publicId" + publicId);
if (publicId.equals("--myDTDpublicID--"))// this deactivates the open office DTD
return new InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
else
return null;
}
});

System.out.println("publicId" + publicId);会被执行3次。前两次都是null,第3次才会有
值,这是什么原因?
popodai 2003-09-11
  • 打赏
  • 举报
回复
谢谢!这个办法确实能行。
可是
myDocumentBuilder.setEntityResolver(new EntityResolver() {
public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
throws SAXException, java.io.IOException
{
if (publicId.equals("--myDTDpublicID--"))// this deactivates the open office DTD
return new InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
else
return null;
}
});
saucer 2003-09-10
  • 打赏
  • 举报
回复
builder.setEntityResolver(new EntityResolver() { public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) throws SAXException, java.io.IOException { if (publicId.equals("--myDTDpublicID--")) // this deactivates the open office DTD return new InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes())); else return null; }});


see
http://forum.java.sun.com/thread.jsp?forum=34&thread=284209

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧