1

アプリの共通 A​​PI 内の xml ファイルを読み取るために、stax パーサーを使用しています。APIはinputstreamをパラメータとして取り、私は以下のようなことをしています

public Object <commonApi>(InputStream is)
  XMLInputFactory inputFactory = XMLInputFactory.newInstance();
  XMLEventReader reader = inputFactory.createXMLEventReader(is);
  try{     
      while (parser.hasNext()) {
      XMLEvent event = parser.nextEvent();
      // reaming parsing logic
     }
   } Catch (Exception e){
      e.printStackTrace();
   }
}

問題は、xml ファイルのエンコーディングが UTF-8 の場合に機能することです。UTF-16の場合、正しく読み取れません..次の例外が発生します

javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,41] メッセージ: プロローグではコンテンツを使用できません。

共通 API の署名を変更できません。入力ストリームで操作する必要があります..何か提案はありますか?

4

1 に答える 1

1

asで使用createXMLEventReader(InputStream stream, String encoding)します。UTF-16encoding

于 2013-05-04T12:19:23.667 に答える