posts - 431,  comments - 344,  trackbacks - 0

          要這么做是因為Server返回給我們的XML肯定是合法的,不需要驗證。

          而設(shè)置不需要驗證,只需要設(shè)置DocumentBuilderFactory.setValidating(false)就可以達到效果了,但是解析器還是會讀取DTD的,解決的方法是實現(xiàn)EntityResolver接口,具體代碼如下:

          package com.founder.demo;

          import Java.io.ByteArrayInputStream;
          import Java.io.IOException;

          import org.xml.sax.EntityResolver;
          import org.xml.sax.InputSource;
          import org.xml.sax.SAXException;

          public class IgnoreDTDEntityResolver implements EntityResolver {

           @Override
           public InputSource resolveEntity(String publicId, String systemId)
             throws SAXException, IOException {
                  return new InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
           }

          }

          然后設(shè)置SAXReader 對象如下:
          SAXReader reader = new SAXReader();
          reader.setEntityResolver(new IgnoreDTDEntityResolver()); // ignore dtd

          一切ok。

          posted on 2009-08-06 11:17 周銳 閱讀(1888) 評論(2)  編輯  收藏 所屬分類: JavaXML
          主站蜘蛛池模板: 札达县| 神木县| 苍梧县| 建始县| 潼关县| 通辽市| 芮城县| 同仁县| 古浪县| 柳江县| 嵊州市| 尉犁县| 虞城县| 弋阳县| 富平县| 阳泉市| 开江县| 喀喇沁旗| 那坡县| 微博| 石河子市| 丽水市| 南雄市| 丰都县| 彰化市| 苏尼特左旗| 通山县| 富蕴县| 青川县| 嘉兴市| 梅河口市| 闵行区| 扶余县| 大港区| 宜昌市| 榆社县| 洛川县| 孟村| 常州市| 武冈市| 秀山|