同じ質問をして申し訳ありませんが、私の調査によると、文脈が異なるようです。エラーが発生する理由はわかっていますが、いくつかのプログラミング フォーラムを調べたりフォローしたりせずにエラーを根絶できませんでした。私のプログラムは次のようになります。URL を ping して入力ストリームを開き、そのストリームを xml ファイルに書き込みます。その後、Xpath を使用して、さらに計算に使用される情報を抽出しています。私のコードは次のとおりです。
URL u=new URL("url here");
HttpURLConnection con=(HttpURLConnection)u.openConnection();
InputStream is=con.getInputStream();
BufferedInputStream br=new BufferedInputStream(is);
File f=new File("data.xml");
if(f.exists())f.delete();
f.createNewFile();
byte data[] = new byte[1024];
int count;
FileOutputStream fout = new FileOutputStream(f);
while((count = br.read(data,0,1024)) != -1)
{
fout.write(data, 0, count);
}
fout.close();
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse("data.xml");
XPathFactory factory=XPathFactory.newInstance();
XPath xPath=factory.newXPath();
XPathExpression expr = xPath.compile("//tr/text()");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
このコードを実行すると、 publicId と systemId の間に空白が必要です。ファイルに直接書き込んでいるので、この空白エラーはどこで発生する可能性がありますか?