private void skip() throws IOException, XmlPullParserException { if (mParser.getEventType() != XmlPullParser.START_TAG) { throw new IllegalStateException(); } int depth = 1; while (depth != 0) { switch (mParser.next()) { case XmlPullParser.END_TAG: depth--; break; case XmlPullParser.START_TAG: depth++; break; } } } }
@Override public Header parse(XmlPullParser parser, int initialDepth) throws XmlPullParserException, IOException { String name = parser.getAttributeValue(null, "name"); String value = null; parser.next(); if (parser.getEventType() == XmlPullParser.TEXT) { value = parser.getText(); } while (parser.getEventType() != XmlPullParser.END_TAG) { parser.next(); } return new Header(name, value); }
public void parseXml() throws XmlPullParserException, IOException { XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.newPullParser(); parser.setInput(new StringReader( "<media:content medium=\"image\" url=\"http://msnbcmedia.msn.com/j/MSNBC/Components/Photo/_new/111010-romney-health-4p.thumb.jpg\">" + "<media:credit role=\"provider\">Getty Images file</media:credit>" + "<media:copyright>2010 Getty Images</media:copyright>" + "<media:text><![CDATA[<p><a href=\"http://www.msnbc.msn.com/id/44854320/ns/politics-decision_2012/\"><img align=\"left\" border=\"0\" src=\"http://msnbcmedia.msn.com/j/MSNBC/Components/Photo/_new/111010-romney-health-4p.thumb.jpg\" alt=\"Mitt Romney speaks at the National Press Club March 5, 2010 in Washington, D.C.\" style=\"margin:0 5px 5px 0\" /></a></p><br clear=\"all\" />]]></media:text>" + "</media:content>")); while (!"media:content".equals(parser.getName()) && parser.getEventType() != XmlPullParser.START_TAG) { parser.next(); } Log.d("media count -->", parser.getAttributeValue(null, "url")); }
private static AbstractHttpOverXmpp.ChunkedBase64 parseChunkedBase64(XmlPullParser parser) throws XmlPullParserException, IOException { String streamId = parser.getAttributeValue("", ATTRIBUTE_STREAM_ID); AbstractHttpOverXmpp.ChunkedBase64 child = new AbstractHttpOverXmpp.ChunkedBase64(streamId); boolean done = false; while (!done) { int eventType = parser.next(); if (eventType == XmlPullParser.END_TAG) { if (parser.getName().equals(ELEMENT_CHUNKED_BASE_64)) { done = true; } else { throw new IllegalArgumentException("unexpected end tag: " + parser.getName()); } } else { throw new IllegalArgumentException("unexpected event type: " + eventType); } } return child; }
public static XmlPullParser getParserFor(String stanza, String startTag) throws XmlPullParserException, IOException { XmlPullParser parser = getParserFor(stanza); while (true) { int event = parser.getEventType(); String name = parser.getName(); if (event == XmlPullParser.START_TAG && name.equals(startTag)) { break; } else if (event == XmlPullParser.END_DOCUMENT) { throw new IllegalArgumentException("Could not find start tag '" + startTag + "' in stanza: " + stanza); } parser.next(); } return parser; }
@Override public GenericSettings parse(XmlPullParser parser, int initialDepth) throws XmlPullParserException, IOException { GenericSettings setting = new GenericSettings(); boolean done = false; while (!done) { int eventType = parser.next(); if (eventType == XmlPullParser.START_TAG && "entry".equals(parser.getName())) { eventType = parser.next(); String name = parser.nextText(); eventType = parser.next(); String value = parser.nextText(); setting.getMap().put(name, value); } else if (eventType == XmlPullParser.END_TAG && ELEMENT_NAME.equals(parser.getName())) { done = true; } } return setting; } }
private static CharSequence parseContentDepthWithRoundtrip(XmlPullParser parser, int depth, boolean fullNamespaces) throws XmlPullParserException, IOException { StringBuilder sb = new StringBuilder(); int event = parser.getEventType(); outerloop: while (true) { // Only append the text if the parser is not on on an empty element' start tag. Empty elements are reported // twice, so in order to prevent duplication we only add their text when we are on their end tag. if (!(event == XmlPullParser.START_TAG && parser.isEmptyElementTag())) { CharSequence text = parser.getText(); if (event == XmlPullParser.TEXT) { text = StringUtils.escapeForXmlText(text); } sb.append(text); } if (event == XmlPullParser.END_TAG && parser.getDepth() <= depth) { break outerloop; } event = parser.next(); } return sb; }
private static AbstractHttpOverXmpp.Text parseText(XmlPullParser parser) throws XmlPullParserException, IOException { String text = null; boolean done = false; while (!done) { int eventType = parser.next(); if (eventType == XmlPullParser.END_TAG) { if (parser.getName().equals(ELEMENT_TEXT)) { done = true; } else { throw new IllegalArgumentException("unexpected end tag of: " + parser.getName()); } } else if (eventType == XmlPullParser.TEXT) { text = parser.getText(); } else { throw new IllegalArgumentException("unexpected eventType: " + eventType); } } return new AbstractHttpOverXmpp.Text(text); }
@Override public GroupChatInvitation parse(XmlPullParser parser, int initialDepth) throws XmlPullParserException, IOException { String roomAddress = parser.getAttributeValue("", "jid"); // Advance to end of extension. parser.next(); return new GroupChatInvitation(roomAddress); } }
String name = parser.getName(); String namespace = parser.getNamespace(); StandardExtensionElement.Builder builder = StandardExtensionElement.builder(name, namespace); String attributePrefix = parser.getAttributePrefix(i); String attributeName = parser.getAttributeName(i); String attributeValue = parser.getAttributeValue(i); String attributeKey; if (StringUtils.isNullOrEmpty(attributePrefix)) { int event = parser.next(); switch (event) { case XmlPullParser.START_TAG: break; case XmlPullParser.TEXT: builder.setText(parser.getText()); break; case XmlPullParser.END_TAG:
public List<RssItem> parse() throws IOException, XmlPullParserException { ArrayList<RssItem> items = new ArrayList<RssItem>(); mParser.nextTag(); mParser.require(XmlPullParser.START_TAG, null, "rss"); mParser.nextTag(); mParser.require(XmlPullParser.START_TAG, null, "channel"); while (mParser.next() != XmlPullParser.END_TAG) { if (mParser.getEventType() != XmlPullParser.START_TAG) { continue; } String name = mParser.getName(); if (name.equals("item")) { items.add(readItem()); } else { skip(); } } return items; }
public XmlPullParser createParser(int res) throws Exception { InputStream stream = getInstrumentation().getContext().getResources().openRawResource(res); XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser parser = factory.newPullParser(); parser.setInput(stream, null); parser.next(); return parser; }
public Macro parseMacro(XmlPullParser parser) throws XmlPullParserException, IOException { Macro macro = new Macro(); boolean done = false; while (!done) { int eventType = parser.next(); if (eventType == XmlPullParser.START_TAG) { if (parser.getName().equals("title")) { parser.next(); macro.setTitle(parser.getText()); } else if (parser.getName().equals("description")) { macro.setDescription(parser.nextText()); } else if (parser.getName().equals("response")) { macro.setResponse(parser.nextText()); } else if (parser.getName().equals("type")) { macro.setType(Integer.valueOf(parser.nextText()).intValue()); } } else if (eventType == XmlPullParser.END_TAG) { if (parser.getName().equals("macro")) { done = true; } } } return macro; }
public void parse(InputStream is) throws XmlPullParserException, IOException { parser.setInput(is, "UTF-8"); int tok; while ((tok = parser.next()) != XmlPullParser.END_DOCUMENT) { if (tok == XmlPullParser.START_TAG) { startElement(parser.getName()); } else if (tok == XmlPullParser.END_TAG) { endElement(parser.getName()); } } }
@Override public final PE parse(XmlPullParser parser, int initialDepth) throws Exception { final String namespace = parser.getNamespace(); final String name = parser.getName(); final int attributeCount = parser.getAttributeCount(); Map<String, String> attMap = new HashMap<>(attributeCount); for (int i = 0; i < attributeCount; i++) { attMap.put(parser.getAttributeName(i), parser.getAttributeValue(i)); } List<ExtensionElement> extensions = new ArrayList<>(); int event; do { event = parser.next(); if (event == XmlPullParser.START_TAG) PacketParserUtils.addExtensionElement(extensions, parser); } while (!(event == XmlPullParser.END_TAG && parser.getDepth() == initialDepth)); return createReturnExtension(name, namespace, attMap, extensions); }
@Override protected void tlsNegotiated() throws XmlPullParserException, IOException { XmlPullParser xpp = socketReader.reader.getXPPParser(); // Reset the parser to use the new reader xpp.setInput(new InputStreamReader( socketReader.connection.getTLSStreamHandler().getInputStream(), CHARSET)); // Skip new stream element for (int eventType = xpp.getEventType(); eventType != XmlPullParser.START_TAG;) { eventType = xpp.next(); } super.tlsNegotiated(); }
private @Nullable JSONObject convertToJSONObject() { try { Tag parentTag = new Tag("", "xml"); XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(false); // tags with namespace are taken as-is ("namespace:tagname") XmlPullParser xpp = factory.newPullParser(); setInput(xpp); int eventType = xpp.getEventType(); while (eventType != XmlPullParser.START_DOCUMENT) { eventType = xpp.next(); } readTags(parentTag, xpp); unsetInput(); return convertTagToJson(parentTag, false); } catch (XmlPullParserException | IOException e) { e.printStackTrace(); return null; } }
public MacroGroup parseMacroGroups(String macros) throws XmlPullParserException, IOException { MacroGroup group = null; XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); parser.setInput(new StringReader(macros)); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { eventType = parser.next(); if (eventType == XmlPullParser.START_TAG) { if (parser.getName().equals("macrogroup")) { group = parseMacroGroup(parser); } } } return group; } }