- Forum-Beiträge: 45
23.04.2011, 10:30:12 via Website
23.04.2011 10:30:12 via Website
Dafür habe ich mir eine Klasse erstellt, die im Konstruktor den Parameter des Typs InputSource erwartet.
In der gemeinsam genutzten Klasse (XmlParser) steht dann sowas wie.
2public XmlParser(InputSource inputSource) {
3...
4public MyHandler parse() {
5SAXParserFactory spf = SAXParserFactory.newInstance();
6SAXParser sp = spf.newSAXParser();
7XMLReader xr = sp.getXMLReader();
8...
9MyHandler myHandler = new MyHandler();
10xr.setContentHandler(myHandler);
11...
12xr.parse(inputSource);
13...
14usw.
In der Klasse für die Web-XML steht sowas ähnliches
2inputSource = new InputSource(httpEntity.getContent());
3XmlParser xmlParser = new XmlParser(inputSource);
4MyHandler myHandler = xmlParser.parse();
5...
In der Klasse für die lokale XML steht sowas.
2// inputStream wird über Konstruktorparameter der Start-Activity übergeben
3(InputStream inputStream = getResources().openRawResource(R.xml.myxml);)
4...
5InputSource inputSource = new InputSource(inputStream);
6XmlParser xmlParser = new XmlParser(inputSource);
7MyHandler myHandler = xmlParser.parse();
8...
Das Parsen der XML auf dem Webserver funktioniert, aber die lokale Datei wird leider nicht geparst. Ich vermute, dass der Inputstream nicht der Gleiche ist, wie bei der XML aus dem Web. Muss man ihn noch irgendwie konvertieren?
— geändert am 23.04.2011, 10:38:37