Apache Commons IO - BOMInputStream メソッドを使用して BOM を削除し、XML 形式の URL を解析しようとしました。ただし、次のエラー
[致命的なエラー] :1:1: プロローグではコンテンツを使用できません。org.xml.sax.SAXParseException; 行番号: 1; 列番号: 1; コンテンツはプロローグで許可されていません。
プログラムの実行時に残りました。XML 形式の URL リンクに複数の BOM が含まれている可能性があることを確認しましたが、BOMInputStream メソッドで処理できるはずだと思いました。私のコードにまだ残っている問題はありますか? どんな助けにも感謝します。
ps 文字列を使用して URL を解析できますが、データを正確に解析できるように XML 形式を保持したいと考えています。
public void parseGoogleApi() throws IOException, SAXException,ParserConfigurationException {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
urlName = "http://www.google.com/finance/getprices?q=0005&x=HKG&i=3600&p=10d&f=d,c,h,l,o,v";
URL u = new URL(urlName);
HttpURLConnection urlCon = (HttpURLConnection) u.openConnection();
urlCon.connect();
InputStream iStream = urlCon.getInputStream();
BOMInputStream bomIn = new BOMInputStream(iStream, ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_16BE,ByteOrderMark.UTF_32LE, ByteOrderMark.UTF_32BE);
Document doc = builder.parse(bomIn);
iStream.close();
System.out.println(doc);
} catch (Exception e) {
System.out.println(e);
}
}