private void parseNoteOwner(XmlPullParser parser, SnapticNote note) throws XmlPullParserException, IOException { int eventType = parser.next(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG) { String startTag = parser.getName(); if (XML_TAG_ID.equals(startTag)) { long ownerId = Long.parseLong(parser.nextText()); note.ownerId = ownerId; parse_trace("Owner ID = " + note.ownerId); } else if (XML_TAG_USER_NAME.equals(startTag)) { String owner = parser.nextText(); note.owner = owner; parse_trace("Owner name = " + note.owner); } else { parse_trace("(parseNoteOwner) unknown XML tag: <" + startTag + ">"); } } else if (eventType == XmlPullParser.END_TAG) { String endTag = parser.getName(); if (XML_TAG_USER.equals(endTag)) { parse_trace("Parsing owner data complete."); break; } } eventType = parser.next(); } }
private void parseTags(XmlPullParser parser, SnapticNote note) throws XmlPullParserException, IOException { ArrayList<CharSequence> tags = new ArrayList<CharSequence>(); int eventType = parser.next(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG) { String startTag = parser.getName(); if (XML_TAG_TAG.equals(startTag)) { String tag = parser.nextText(); tags.add(tag); parse_trace("Added tag \"" + tag + '"'); } else { parse_trace("(parseTags) unknown XML tag: <" + startTag + ">"); } } else if (eventType == XmlPullParser.END_TAG) { String endTag = parser.getName(); if (XML_TAG_TAGS.equals(endTag)) { note.tags = tags; parse_trace("Note had " + note.tags.size() + " tag(s)."); break; } } eventType = parser.next(); } }
private void parseLocation(XmlPullParser parser, SnapticNote note) throws XmlPullParserException, IOException { int eventType = parser.next(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG) { String startTag = parser.getName(); if (XML_TAG_LATITUDE.equals(startTag)) { double latitude = Double.parseDouble(parser.nextText()); note.latitude = latitude; parse_trace("Latitude = " + note.latitude); } else if (XML_TAG_LONGITUDE.equals(startTag)) { double longitude = Double.parseDouble(parser.nextText()); note.longitude = longitude; parse_trace("Longitude = " + note.longitude); } else if (XML_TAG_ALTITUDE.equals(startTag)) { double altitude = Double.parseDouble(parser.nextText()); note.altitude = altitude; parse_trace("Altitude = " + note.altitude); } else if (XML_TAG_SPEED.equals(startTag)) { double speed = Double.parseDouble(parser.nextText()); note.speed = speed; parse_trace("Speed = " + note.speed); } else if (XML_TAG_BEARING.equals(startTag)) { double bearing = Double.parseDouble(parser.nextText()); note.bearing = bearing; parse_trace("Bearing = " + note.bearing); } else if (XML_TAG_ACCURACY_POSITION.equals(startTag)) { double accuracyPosition = Double.parseDouble(parser.nextText()); note.accuracyPosition = accuracyPosition; parse_trace("Positional accuracy = " + note.accuracyPosition); } else if (XML_TAG_ACCURACY_ALTITUDE.equals(startTag)) { double accuracyAltitude = Double.parseDouble(parser.nextText()); note.accuracyAltitude = accuracyAltitude; parse_trace("Altitude accuracy = " + note.accuracyAltitude); } else { parse_trace("(parseLocation) unknown XML tag: <" + startTag + ">"); } } else if (eventType == XmlPullParser.END_TAG) { String endTag = parser.getName(); if (XML_TAG_LOCATION.equals(endTag)) { parse_trace("Parsing geotag complete."); break; } } eventType = parser.next(); } }
private void parseNote(XmlPullParser parser, ArrayList<SnapticNote> returnVal) throws XmlPullParserException, IOException { // Create a blank note object SnapticNote note = new SnapticNote(); returnVal.add(note); int eventType = parser.next(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG) { String startTag = parser.getName(); // one-liners: if (XML_TAG_ID.equals(startTag)) { long nodeId = Long.parseLong(parser.nextText()); note.id = nodeId; parse_trace("Note ID is " + note.id); } else if (XML_TAG_PARENT_ID.equals(startTag)) { long parentId = Long.parseLong(parser.nextText()); note.parentId = parentId; parse_trace("Parent ID is " + note.parentId); } else if (XML_TAG_SOURCE.equals(startTag)) { String source = parser.nextText(); note.source = source; parse_trace("Note source is " + note.source); } else if (XML_TAG_SOURCE_URL.equals(startTag)) { String sourceUrl = parser.nextText(); note.sourceUrl = sourceUrl; parse_trace("Note source URL is " + note.sourceUrl); } else if (XML_TAG_CREATED.equals(startTag)) { String creationTime = parser.nextText(); note.creationTime = parse3339(creationTime); parse_trace("Creation time is " + creationTime + " (" + note.creationTime + ')'); } else if (XML_TAG_MODIFIED.equals(startTag)) { String modificationTime = parser.nextText(); note.modificationTime = parse3339(modificationTime); parse_trace( "Modification time is " + modificationTime + " (" + note.modificationTime + ')'); } else if (XML_TAG_REMINDER.equals(startTag)) { String reminderTime = parser.nextText(); note.reminderTime = parse3339(reminderTime); parse_trace("Reminder time is " + reminderTime + " (" + note.reminderTime + ')'); } else if (XML_TAG_TEXT.equals(startTag)) { String text = parser.nextText(); note.text = text; parse_trace("Note text is \"" + note.text + '"'); } else if (XML_TAG_SUMMARY.equals(startTag)) { String summary = parser.nextText(); note.summary = summary; parse_trace("Note summary is \"" + note.summary + '"'); } else if (XML_TAG_CHILDREN.equals(startTag)) { long childCount = Long.parseLong(parser.nextText()); note.children = childCount; parse_trace("Child count is " + note.children); } else if (XML_TAG_MODE.equals(startTag)) { String mode = parser.nextText(); note.mode = mode; parse_trace("Mode is " + note.mode); } else if (XML_TAG_PUBLIC_URL.equals(startTag)) { String publicUrl = parser.nextText(); note.publicUrl = publicUrl; parse_trace("Public URL is " + note.publicUrl); } // new blocks: else if (XML_TAG_USER.equals(startTag)) { parse_trace("Parsing note owner data."); parseNoteOwner(parser, note); } else if (XML_TAG_TAGS.equals(startTag)) { parse_trace("Parsing note tags."); parseTags(parser, note); } else if (XML_TAG_LOCATION.equals(startTag)) { parse_trace("Parsing geotag."); parseLocation(parser, note); } else if (XML_TAG_MEDIA.equals(startTag)) { parse_trace("Parsing media list."); parseMedia(parser, note); } else { parse_trace("(parseNote) unknown XML tag: <" + startTag + ">"); } } else if (eventType == XmlPullParser.END_TAG) { String endTag = parser.getName(); if (XML_TAG_NOTE.equals(endTag)) { parse_trace("Parsing note complete."); break; } } eventType = parser.next(); } }