Michael H.
- Forum-Beiträge: 17
14.09.2012, 13:20:11 via Website
14.09.2012 13:20:11 via Website
Hallo zusammen,
ich habe in meine App einen SAX XML-Parser implementiert, welcher so weit auch super funktioniert. Nur steh ich grad aufm Schlauch und bekomme die Daten nicht aus meiner Funktion raus, so dass ich diese in meiner Activity nutzen kann...
Hier die Methode:
[code]public void parseXML() {
String parsedData = "";
try {
Log.w("AndroidParseXMLActivity", "Start");
/** Handling XML */
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
XMLContentHandler myXMLHandler = new XMLContentHandler();
xr.setContentHandler(myXMLHandler);
AssetManager assetManager = getAssets();
InputStream inputStream = null;
try {
inputStream = assetManager.open("calimero.xml");
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
xr.parse(new InputSource(inputStream));
ArrayList<Datapoint> itemsList = myXMLHandler.getItemsList();
int datapoint_size = itemsList.size();
String xml_names[] = new String [datapoint_size];
String xml_states[] = new String [datapoint_size];
String xml_dptIDs[] = new String [datapoint_size];
String xml_groupadresses[] = new String [datapoint_size];
String xml_mainNumbers[] = new String [datapoint_size];
String xml_priority[] = new String [datapoint_size];
for(int i=0;i<itemsList.size();i++){
Datapoint item = itemsList.get(i);
parsedData = parsedData + "----->\n";
parsedData = parsedData + "Name: " + item.getName() + "\n";
xml_names[i] = item.getName();
parsedData = parsedData + "stateBased: " + item.getStateBased() + "\n";
xml_states[i] = item.getStateBased();
parsedData = parsedData + "mainNumber: " + item.getMainNumber() + "\n";
xml_mainNumbers[i] = item.getMainNumber();
parsedData = parsedData + "dptID: "+ item.getDptID() + "\n";
xml_dptIDs[i] = item.getDptID();
parsedData = parsedData + "Groupadress: "+ item.getGroupadress() + "\n";
xml_groupadresses[i] = item.getGroupadress();
parsedData = parsedData + "priority: "+ item.getPriority() + "\n";
xml_priority[i] = item.getPriority();
}
//TODO die Werte auch außerhalb der Methode verfügbar machen
Log.w("AndroidParseXMLActivity", "Done");
}
catch (Exception e) {
Log.w("AndroidParseXMLActivity",e );
}
}
[/code]
Wie kann ich nun von außerhalb auf z.B auf das xml_names Array zugreifen? Ich muss es doch irgendwie über den Rückgabewert der Funktion machen, aber alle Versuche dies zu implementieren sind bis jetzt gescheitert...
Bitte helft mir, ist ja doch "nur" ein Java Grundlagen Problem..
Danke und Gruß,
Michael
ich habe in meine App einen SAX XML-Parser implementiert, welcher so weit auch super funktioniert. Nur steh ich grad aufm Schlauch und bekomme die Daten nicht aus meiner Funktion raus, so dass ich diese in meiner Activity nutzen kann...
Hier die Methode:
[code]public void parseXML() {
String parsedData = "";
try {
Log.w("AndroidParseXMLActivity", "Start");
/** Handling XML */
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
XMLContentHandler myXMLHandler = new XMLContentHandler();
xr.setContentHandler(myXMLHandler);
AssetManager assetManager = getAssets();
InputStream inputStream = null;
try {
inputStream = assetManager.open("calimero.xml");
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
xr.parse(new InputSource(inputStream));
ArrayList<Datapoint> itemsList = myXMLHandler.getItemsList();
int datapoint_size = itemsList.size();
String xml_names[] = new String [datapoint_size];
String xml_states[] = new String [datapoint_size];
String xml_dptIDs[] = new String [datapoint_size];
String xml_groupadresses[] = new String [datapoint_size];
String xml_mainNumbers[] = new String [datapoint_size];
String xml_priority[] = new String [datapoint_size];
for(int i=0;i<itemsList.size();i++){
Datapoint item = itemsList.get(i);
parsedData = parsedData + "----->\n";
parsedData = parsedData + "Name: " + item.getName() + "\n";
xml_names[i] = item.getName();
parsedData = parsedData + "stateBased: " + item.getStateBased() + "\n";
xml_states[i] = item.getStateBased();
parsedData = parsedData + "mainNumber: " + item.getMainNumber() + "\n";
xml_mainNumbers[i] = item.getMainNumber();
parsedData = parsedData + "dptID: "+ item.getDptID() + "\n";
xml_dptIDs[i] = item.getDptID();
parsedData = parsedData + "Groupadress: "+ item.getGroupadress() + "\n";
xml_groupadresses[i] = item.getGroupadress();
parsedData = parsedData + "priority: "+ item.getPriority() + "\n";
xml_priority[i] = item.getPriority();
}
//TODO die Werte auch außerhalb der Methode verfügbar machen
Log.w("AndroidParseXMLActivity", "Done");
}
catch (Exception e) {
Log.w("AndroidParseXMLActivity",e );
}
}
[/code]
Wie kann ich nun von außerhalb auf z.B auf das xml_names Array zugreifen? Ich muss es doch irgendwie über den Rückgabewert der Funktion machen, aber alle Versuche dies zu implementieren sind bis jetzt gescheitert...
Bitte helft mir, ist ja doch "nur" ein Java Grundlagen Problem..
Danke und Gruß,
Michael
— geändert am 14.09.2012, 13:36:13
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.