Olá pessoal…
estou tentado fazendo um midlet no netbeans que leia um arquivo .xml qualquer e exiba ele na tela do dispositivo sem as tags do xml.
A princípio, eu estou utilizando o pacote kxml2 que é um parser de xml que transforma o arquivo .xml em texto retirando as tags.
eu fiz da seguinte forma:
import com.sun.midp.io.j2me.storage.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import org.kxml2.io.KXmlParser;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
/**
*
* @author vital
* @version
*/
public class ExPalm extends MIDlet {
Form form = new Form("Pessoas");
protected void startApp() throws MIDletStateChangeException {
InputStream in = getClass().getResourceAsStream("pessoas.xml");
try {
Display.getDisplay(this).setCurrent(form);
parser(in);
} catch (Exception e) {
e.printStackTrace();
}
}
private void parser(InputStream in) throws Exception {
//Inicia o XMLParser
KXmlParser parser = new KXmlParser();
parser.setInput(new InputStreamReader(in));
parser.nextTag();
//Posiciona na tag <agenda>
parser.require(XmlPullParser.START_TAG, null, "agenda");
//Enquanto é diferente de END_TAG
while (parser.nextTag () != XmlPullParser.END_TAG)
{
//Posiciona na tag <pessoa>
parser.require(XmlPullParser.START_TAG, null, "pessoa");
parserPessoa(parser);
form.append("\n");
parser.require(XmlPullParser.END_TAG, null, "pessoa");
}
parser.require(XmlPullParser.END_TAG, null, "agenda");
parser.next();
parser.require(XmlPullParser.END_DOCUMENT, null, null);
}
private void parserPessoa(KXmlParser parser) throws Exception {
//Enquanto é diferente de </pessoa>
while (parser.nextTag() != XmlPullParser.END_TAG) {
//Posiciona em uma tag "START". Ex: <nome> ou <fone>
parser.require(XmlPullParser.START_TAG, null, null);
String name = parser.getName();
String text = parser.nextText();
System.out.println("Tag: " + name + " -> " + text);
//Adiciona o texto no Form
form.append(text);
//Posiciona no fim da tag </nome> ou </fone>
parser.require(XmlPullParser.END_TAG, null, name);
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
E o xml é:
<?xml version="1.0" encoding="UTF-8"?>
<agenda>
<pessoa>
<nome>Joao</nome>
<fone>3214-3322</fone>
</pessoa>
<pessoa>
<nome>Vital</nome>
<fone>32149999</fone>
</pessoa>
<pessoa>
<nome>Carlos</nome>
<fone>33277443</fone>
</pessoa>
</agenda>
[b]Esse código está funcionando corretamente quando coloco pessoas.xml no mesmo diretório do projeto, porém o que eu queria era colocar o xml dentro de uma pasta chamada pessoas na unidade c:/ . Tentei modificar essa linha para InputStream in = getClass().getResourceAsStream("c:/Pessoas/pessoas.xml"); Mas não funciona 
Alguem tem alguma idéia de como eu posso fazer isso?
Desde já agradeço!![/b]