posts - 431,  comments - 344,  trackbacks - 0

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

          而設(shè)置不需要驗證,只需要設(shè)置DocumentBuilderFactory.setValidating(false)就可以達(dá)到效果了,但是解析器還是會讀取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)  編輯  收藏 所屬分類: Java 、XML
          主站蜘蛛池模板: 扬州市| 西乌珠穆沁旗| 玉门市| 长岛县| 内黄县| 翁牛特旗| 廊坊市| 德兴市| 新蔡县| 赫章县| 宝鸡市| 开阳县| 日土县| 台江县| 鄢陵县| 本溪市| 阿巴嘎旗| 峨山| 毕节市| 万安县| 屏东市| 平顶山市| 南京市| 江达县| 江西省| 银川市| 襄城县| 梁河县| 安图县| 当阳市| 札达县| 交城县| 宝丰县| 宜宾市| 庄浪县| 比如县| 甘洛县| 新郑市| 漳州市| 东平县| 通河县|