2
我正在爲我的j2me應用程序使用kxml解析器。我正在從手機內存中讀取文件並解析xml文件以顯示數據(具有各種級別的過濾器)。在每個過濾器上,我需要從這個文件讀取數據。我第一次創建解析器,每次我將這個parser1(reference-original)重新分配給paerser2(用於解析數據)。我第一次得到正確的答案,但第二次沒有得到文件內容,它顯示爲空數據。如何重用j2me kxml解析器?
這裏是我的代碼:
FileConnection fc = (FileConnection)Connector.open(rmsObj.rmsData.elementAt(0).toString());
InputStream in = fc.openInputStream();
InputStreamReader is = new InputStreamReader(in);
commonAppObj.externParser = new XmlParser(is);
commonAppObj類文件。
protected void fileread() {
try {
if(externParser != null){
parser = externParser;
fileparser(parser);
}else{
InputStream in = this.getClass().getResourceAsStream(this.dataBase);
InputStreamReader is = new InputStreamReader(in);
parser = new XmlParser(is);
fileparser(parser);
}
} catch (IOException ioe) {
} finally {
parser = null;
}
}
private void fileparser(XmlParser parser){
try {
ParseEvent event = null;
dataflag = 0;
dataflagS = 0;
System.out.println("findtags = " + findtags);
while (((event = parser.read()).getType() != Xml.END_DOCUMENT) && (dataflag != 1)) {
if (event.getType() == Xml.START_TAG) {
String name = event.getName();
if (name != null && name.equals(findtags)) {
dataflag = 0;
parseAddressTag(parser);
}
name = null;
}
event = null;
}
} catch (IOException ioe) {
} finally {
parser = null;
}
}
}
謝謝您的回覆,但是,當我想這我得到這個錯誤產生java.io.IOException:重置爲無效標誌 –
謝謝您的回答聖特爾莫先生皮門特爾莫塔。我完成了這個任務。我對代碼所做的更改是「in.mark(fc.filesize())」,重置現在可以正常工作。 –
知道它的工作原理是很好的。如果我的回答對您有幫助,請將其標記爲正確。 :) –