posts - 431,  comments - 344,  trackbacks - 0

          要這么做是因?yàn)镾erver返回給我們的XML肯定是合法的,不需要驗(yàn)證。

          而設(shè)置不需要驗(yàn)證,只需要設(shè)置DocumentBuilderFactory.setValidating(false)就可以達(dá)到效果了,但是解析器還是會(huì)讀取DTD的,解決的方法是實(shí)現(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 對(duì)象如下:
          SAXReader reader = new SAXReader();
          reader.setEntityResolver(new IgnoreDTDEntityResolver()); // ignore dtd

          一切ok。

          posted on 2009-08-06 11:17 周銳 閱讀(1888) 評(píng)論(2)  編輯  收藏 所屬分類: JavaXML
          主站蜘蛛池模板: 城步| 乌鲁木齐市| 宁波市| 济宁市| 清原| 兴国县| 银川市| 武清区| 岱山县| 宿迁市| 铁岭县| 东辽县| 玉环县| 宁蒗| 赤水市| 玉林市| 蓬莱市| 曲沃县| 弥勒县| 平度市| 米泉市| 永善县| 黄山市| 彩票| 安阳市| 托克逊县| 绥宁县| 沙雅县| 海门市| 清新县| 舟曲县| 保定市| 松江区| 滨州市| 九龙城区| 吉木萨尔县| 文昌市| 连州市| 资中县| 随州市| 武穴市|