こんにちは、FTP サーバーから XML ファイルを読み取って解析しようとしています。
しかし、文字列を入力ソースとして使用できません。LogCat でファイルを読み取ることができ、ブラウザで XML ファイルを開くことができます。しかし、文字列を入力ソースとして使用する方法がわかりません。
コード:
public void readXML(){
try {
Log.e("FTP", "Starting ftp session");
FTPClient ftp = new FTPClient();
Log.e("FTP", "Connecting to FTP");
ftp.connect("ftp.domain.com");
Log.e("FTP", "Providing credentials to FTP");
ftp.login("user", "pswd");
if(ftp.login("user", "pswd")){
Log.e("FTP", "Was able to connect to FTP");
}
ftp.enterLocalPassiveMode();
ftp.changeWorkingDirectory("/folder/XML");
Log.e("FTP", "Getting stream");
InputStream inStream = ftp.retrieveFileStream("file.xml");
InputStreamReader isr = new InputStreamReader(inStream, "UTF8");
BufferedReader reader = new BufferedReader(isr);
String Input = "";
Log.e("FTP", "Reading filestream");
do{
Input = Input + reader.readLine() + "\n";
Log.e("FTP", reader.readLine());
}while(reader.readLine()!=null);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Log.e("FTP", "Parsing inputsource");
Document doc = db.parse(new InputSource(new StringReader(Input)));
doc.getDocumentElement().normalize();
Log.e("FTP", "Creating nodelist");
NodeList nodeList = doc.getElementsByTagName("TAG");
StringReader が正しい方法であるかどうかはわかりません。
編集:
ラジェッシュに感謝
これが私の解決策です:
public void readXML(){
try {
Log.e("FTP", "Starting ftp session");
FTPClient ftp = new FTPClient();
Log.e("FTP", "Connecting to FTP");
ftp.connect("ftp.domain.com");
Log.e("FTP", "Providing credentials to FTP");
ftp.login("user", "pswd");
if(ftp.login("user", "pswd")){
Log.e("FTP", "Was able to connect to FTP");
}
ftp.enterLocalPassiveMode();
ftp.changeWorkingDirectory("/folder/XML");
Log.e("FTP", "Getting stream");
InputStream inStream = ftp.retrieveFileStream("file.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Log.e("FTP", "Parsing inputsource");
Document doc = db.parse(new InputSource(inStream));
doc.getDocumentElement().normalize();
Log.e("FTP", "Creating nodelist");
NodeList nodeList = doc.getElementsByTagName("TAG");