posts - 431,  comments - 344,  trackbacks - 0

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

          而設置不需要驗證,只需要設置DocumentBuilderFactory.setValidating(false)就可以達到效果了,但是解析器還是會讀取DTD的,解決的方法是實現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()));
           }

          }

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

          一切ok。

          posted on 2009-08-06 11:17 周銳 閱讀(1879) 評論(2)  編輯  收藏 所屬分類: JavaXML
          主站蜘蛛池模板: 桓仁| 大竹县| 赤城县| 德化县| 辽阳市| 福海县| 瑞昌市| 伊宁市| 朔州市| 邹平县| 江油市| 民勤县| 汉沽区| 枣强县| 大兴区| 营山县| 岑巩县| 五华县| 章丘市| 长阳| 鹤山市| 德化县| 东宁县| 林周县| 九江县| 巴楚县| 柘城县| 邢台县| 六盘水市| 香河县| 东源县| 云林县| 揭西县| 万源市| 六盘水市| 阿拉尔市| 元朗区| 斗六市| 谢通门县| 乌拉特前旗| 那坡县|