java dom4j content is not allowed in prolog

1670 단어 자바xmldom4j
얼마 전에 dom4j 로 xml 를 분석 하 다가 이상 이 생 겼 습 니 다. content is not allowed in prolog, 인 코딩 문제 로 추정 되 며, 나중에 인터넷 에서 답 을 찾 았 으 며, 구체 적 으로 아래 의 코드 를 보면 어떻게 된 일 인지 알 수 있 습 니 다.
 
 
import java.io.*;
import java.nio.charset.Charset;
import javax.xml.parsers.*;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class ContentNotAllowedInProlog {
  private static void parse(InputStream stream) throws SAXException,
      ParserConfigurationException, IOException {
    SAXParserFactory.newInstance().newSAXParser().parse(stream,
        new DefaultHandler());
  }

  public static void main(String[] args) {
    String[] encodings = { "UTF-8", "UTF-16", "ISO-8859-1" };
    for (String actual : encodings) {
      for (String declared : encodings) {
        if (actual != declared) {
          String xml = "<?xml version='1.0' encoding='" + declared
              + "'?><x/>";
          byte[] encoded = xml.getBytes(Charset.forName(actual));
          try {
            parse(new ByteArrayInputStream(encoded));
            System.out.println("HIDDEN ERROR! actual:" + actual + " " + xml);
          } catch (Exception e) {
            System.out.println(e.getMessage() + " actual:" + actual + " xml:"
                + xml);
          }
        }
      }
    }
  }
}
 
이 코드 는 외국인 이 분석 한 것 이다.
도움 이 많이 된 것 같 습 니 다.
 
 

좋은 웹페이지 즐겨찾기