1. Sico, 28.02.2010 #1
    Sico

    Sico Threadstarter Fortgeschrittenes Mitglied

    Hallo,


    kennt jemand einen Codeschnippsel zum parsen einer XML Datei?

    Gruß

    Sico
     
  2. Shinigami, 28.02.2010 #2
    Shinigami

    Shinigami Fortgeschrittenes Mitglied

  3. SirMArtin, 28.02.2010 #3
    SirMArtin

    SirMArtin freier Samsungsupporter

    Mein kleiner XMLParser.
    Code:
    public class XMLParser {
    
      public static History parse(String xml) {
        try {
          InputStream xmlStream = new ByteArrayInputStream(xml.getBytes());
    
          DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
          Document doc = builder.parse(xmlStream);
    
          Element rootNode = doc.getDocumentElement();
    
          History h = new History();
          h.setTrackingId(rootNode.getAttribute(RestInterface.HISTORY_TRACKINGID));
          h.setLastChecked(parseDate(rootNode.getAttribute(RestInterface.HISTORY_LASTCHECKED), false));
          h.setDelivered(Boolean.parseBoolean(rootNode.getAttribute(RestInterface.HISTORY_DELIVERED)));
    
          NodeList events = rootNode.getElementsByTagName(RestInterface.EVENT);
          for (int i = 0; i < events.getLength(); i++) {
            Element event = (Element) events.item(i);
            Event e = new Event();
            h.addToEvents(e);
    
            e.setEventTime(parseDate(event.getAttribute(RestInterface.EVENT_EVENTTIME), true));
            e.setRecieveTime(parseDate(event.getAttribute(RestInterface.EVENT_RECIEVETIME), false));
    
          }
    
          return h;
        } catch (Exception e) {
          Log.e(Const.LOG_TAG, "An exception occured!", e);
          return null;
        }
      }
    
      private static String getElementValue(Element element) {
        String val = element.getChildNodes().item(0).getNodeValue();
        if (val == null)
          return "";
    
    // hier bin ich nicht sicher, ob das notwendig ist
    // ggf. funktioniert auch ein replace von "\n"
        if (val.contains("\n")) {
          val = val.replace("\n", "§§");
          StringTokenizer t = new StringTokenizer(val, "§§");
          val = "";
          while (t.hasMoreTokens()) {
            val = val + " " + t.nextToken().trim();
          }
        }
    
        return val.trim();
      }
    
      private static Date parseDate(String dateString, boolean needToFix) {
        if (StringUtils.isEmpty(dateString))
          return null;
        String[] parts = dateString.split("T");
    
        if (parts == null || StringUtils.isEmpty(parts[0]) || StringUtils.isEmpty(parts[1]))
          return null;
        String[] date = parts[0].split("-");
        String[] time = parts[1].split(":");
    
        GregorianCalendar cal = new GregorianCalendar();
        cal.set(Calendar.YEAR, Integer.parseInt(date[0]));
        cal.set(Calendar.MONTH, Integer.parseInt(date[1]) - (needToFix ? 1 : 0));
        cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(date[2]));
        cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(time[0]));
        cal.set(Calendar.MINUTE, Integer.parseInt(time[1]));
        cal.set(Calendar.SECOND, 0);
        return cal.getTime();
      }
    
    }
    
     
Die Seite wird geladen...
Similar Threads Forum Datum
Open Camera, Bilder auf sdcard, 0 Byte Dateien Foto und Multimedia 07.05.2017
ES Datei Explorer - meldet bei jeden Start der Hardware, das ein USB Stick angeschlossen ist - wie dieses deaktivieren? ES Datei-Explorer 08.05.2017
MKV-Dateien abspielen Samsung Galaxy Tab A 2016 (10.1) (T580/T585) Forum 10.05.2017
Wo verstecken sich die "eigenen Dateien" ? Samsung Galaxy S7 Edge (G935F) Forum 13.05.2017
Nexus 5X: Suche nach Datei "handheld_core_hardware.xml" Root / Custom-ROMs / Modding für Google Nexus 5X 14.05.2017
Samsung Galaxy S8 / S8+ - Musik App realisiert Musik-Dateien in einem bestimmten Ordner nicht Foto und Multimedia 18.05.2017
Windows Media Audio (WMA Dateien) auf Cubot Dinosaur abspielen Cubot Dinosaur Forum 22.05.2017
Suche: einzelne Dateien wipen Tools Freitag um 20:00 Uhr
Hilfe, kann keine Dateien auf MI5 kopieren Xiaomi Mi5 Forum Sonntag um 17:48 Uhr
Schlüssellänge bei SD-Karten Verschlüsselungen Android Sicherheit - AntiVirus, Firewalls, Datenschutz, Verschlüsselung Gestern um 11:46 Uhr