1

我正在从 ftp 下载文件,将其保存到我的本地文件系统中,然后使用createXMLStreamReader. 当我尝试解析它时,我收到此错误:javax.xml.stream.XMLStreamException: ParseError at [row,col]:[124,316]. 当我手动将其复制并粘贴到另一个文件时,一切正常。我试过用这个复制文件,文件被复制了,但我仍然遇到同样的错误。我确实意识到这是由于<xml节点之前的二进制字符引起的,但我不确定如何摆脱它们。

我无法控制从 ftp 复制的内容,我正在使用java 1.7

我检索文件的代码:

client.connect("ftp.domain.com");
client.login("user", "password");

String filename = assetsPath + "/ftpExport.xml";
fos = new FileOutputStream(filename);
client.retrieveFile("/Export.xml", fos);

我创建 StreamReader 的代码:

inputFactory = XMLInputFactory.newInstance();
File f = new File(Parser.class.getProtectionDomain().getCodeSource().getLocation().getPath());
assetsPath = f.toString()+"/../assets";
xmlReader = inputFactory.createXMLStreamReader(
    new FileReader(assetsPath + "/Export.xml"));
4

1 回答 1

3

不要使用 FileReader 读取 xml,因为这会损坏 xml。使用 FileInputStream。

于 2012-07-12T19:16:32.233 回答