android.util.Xml#newPullParser ( )源码实例Demo

下面列出了android.util.Xml#newPullParser ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Focus   文件: FeedParser.java
private static Feed beginParseStr2Feed(String xmlStr,String url) throws UnsupportedEncodingException {
    feedUrl = url;
    XmlPullParser parser = Xml.newPullParser();
    try {
        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
        parser.setInput(new StringReader(xmlStr));

        while (parser.next() != XmlPullParser.END_TAG){
            if (parser.getEventType() != XmlPullParser.START_TAG) {
                continue;
            }
            String name = parser.getName();
            if (name.equals(RSS)){//RSS格式
                return readRssForFeed(parser);

            }else if (name.equals(FEED)){
                return readFeedForFeed(parser,url);
            }
        }
    } catch (XmlPullParserException | IOException e) {
        e.printStackTrace();
    }
    return null;
}
 
源代码2 项目: Focus   文件: FeedParser.java
private static Feed beginParseStr2Feed(String xmlStr,String url) throws UnsupportedEncodingException {
    feedUrl = url;
    XmlPullParser parser = Xml.newPullParser();
    try {
        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
        parser.setInput(new StringReader(xmlStr));

        while (parser.next() != XmlPullParser.END_TAG){
            if (parser.getEventType() != XmlPullParser.START_TAG) {
                continue;
            }
            String name = parser.getName();
            if (name.equals(RSS)){//RSS格式
                return readRssForFeed(parser);

            }else if (name.equals(FEED)){
                return readFeedForFeed(parser,url);
            }
        }
    } catch (XmlPullParserException | IOException e) {
        e.printStackTrace();
    }
    return null;
}
 
源代码3 项目: Android   文件: GlobalLanguageUtil.java
public void xmlParse(String code) throws XmlPullParserException, IOException {
    InputStream inputStream = BaseApplication.getInstance().getApplicationContext().getAssets().open("emotion_zh.xml");

    XmlPullParser pullParser = Xml.newPullParser();
    pullParser.setInput(inputStream, "UTF-8");

    String keyEn = "";
    String keyZh = "";
    int eventType = pullParser.getEventType();
    while (eventType != XmlPullParser.END_DOCUMENT) {
        switch (eventType) {
            case XmlPullParser.START_DOCUMENT:
                languageMap.clear();
                break;
            case XmlPullParser.START_TAG:
                keyEn = pullParser.getAttributeValue("", "name");
                pullParser.next();
                keyZh = pullParser.getText();
                if (!(TextUtils.isEmpty(keyEn) || TextUtils.isEmpty(keyZh))) {
                    if (code.contains("en")) {//ch to en
                        languageMap.put(keyZh, keyEn);
                    } else {//en to ch
                        languageMap.put(keyEn, keyZh);
                    }
                }
                break;
            case XmlPullParser.END_TAG:
                break;
        }
        eventType = pullParser.next();
    }
}
 
源代码4 项目: android-common-utils   文件: WeixinUtil.java
public static Map<String,String> decodeXml(String content) {
    try {
        Map<String, String> xml = new HashMap<>();
        XmlPullParser parser = Xml.newPullParser();
        parser.setInput(new StringReader(content));
        int event = parser.getEventType();
        while (event != XmlPullParser.END_DOCUMENT) {

            String nodeName=parser.getName();
            switch (event) {
                case XmlPullParser.START_DOCUMENT:

                    break;
                case XmlPullParser.START_TAG:
                    if(!"xml".equals(nodeName)){
                        //实例化student对象
                        xml.put(nodeName,parser.nextText());
                    }
                    break;
                case XmlPullParser.END_TAG:
                    break;
            }
            event = parser.next();
        }
        return xml;
    } catch (Exception e) {
        Log.e("orion",e.toString());
    }
    return null;

}
 
源代码5 项目: Pix-Art-Messenger   文件: XmlReader.java
public XmlReader() {
    this.parser = Xml.newPullParser();
    try {
        this.parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
    } catch (XmlPullParserException e) {
        Log.d(Config.LOGTAG, "error setting namespace feature on parser");
    }
}
 
public JSONObject parse(InputStream in) throws XmlPullParserException, IOException, JSONException {
    try {
        XmlPullParser parser = Xml.newPullParser();
        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
        parser.setInput(in, null);
        parser.nextTag();
        return readEvent(parser);
    } finally {
        in.close();
    }
}
 
源代码7 项目: trekarta   文件: KmlParser.java
@NonNull
public static FileDataSource parse(InputStream in) throws XmlPullParserException, IOException {
    try {
        XmlPullParser parser = Xml.newPullParser();
        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
        parser.setInput(in, null);
        parser.nextTag();
        return readKml(parser);
    } finally {
        in.close();
    }
}
 
public JSONArray parse(InputStream in) throws XmlPullParserException, IOException, JSONException {
    try {
        XmlPullParser parser = Xml.newPullParser();
        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
        parser.setInput(in, null);
        parser.nextTag();
        return readPropertySet(parser);
    } finally {
        in.close();
    }
}
 
源代码9 项目: Android-Basics-Codes   文件: ParserXml.java
/**
 * ���������н���Xml�ļ�
 * @param is
 * 			������
 * @return
 * 			null:��ʾ����Xml�ļ�����
 */
public static List<NewsBean> parserXmlFromStream(InputStream is){
	List<NewsBean> newsList = new ArrayList<NewsBean>();
	try {
		// 1. ��ʼ��Xml������
		XmlPullParser parser = Xml.newPullParser();
		// 2. ����������
		parser.setInput(is, "utf-8");
		// 3. ��������
		int type = parser.getEventType();
		NewsBean bean = null;
		
		while(type != XmlPullParser.END_DOCUMENT){
			//��ʼ���߽�����ǩ
			String tag = parser.getName();
			switch (type) {
			case XmlPullParser.START_TAG://��ʼ��ǩ
				if("item".equals(tag)){			//ÿ��������Ŀ�Ŀ�ʼ��ǩ
					bean  = new NewsBean();
				}else if("title".equals(tag)){	//���ŵı���
					String title = parser.nextText();
					bean.setTitle(title);
				}else if("des".equals(tag)){	//���ŵ�����
					String des = parser.nextText();
					bean.setDes(des);
				}else if("image".equals(tag)){	//���ŵ�ͼƬ��Url
					String imageUrl = parser.nextText();
					bean.setImage(imageUrl);
				}else if("comment".equals(tag)){//���ŵ�����
					String comment = parser.nextText();
					bean.setComment(comment);
				}
				break;
			case XmlPullParser.END_TAG://������ǩ
				if("item".equals(tag)){			//ÿ��������Ŀ�Ľ�����ǩ
					newsList.add(bean);
				}
				break;

			default:
				break;
			}
			
			//�õ���һ���¼�
			type = parser.next();
		}
		
		return newsList;
	} catch (Exception e) {
		e.printStackTrace();
		return null;
	}
}
 
源代码10 项目: droidddle   文件: XmlParser.java
/**
 * Read and parse res/raw/changelog.xml or custom file
 *
 * @throws Exception if changelog.xml or custom file is not found or if there are errors on parsing
 *
 * @return {@link ChangeLog} obj with all data
 */
@Override
public ChangeLog readChangeLogFile() throws Exception {

    ChangeLog chg = null;

    try {
        InputStream is = null;

        if (mChangeLogFileResourceUrl != null) {
            if (Util.isConnected(super.mContext)) {
                URL url = new URL(mChangeLogFileResourceUrl);
                is = url.openStream();
            }
        } else {
            is = mContext.getResources().openRawResource(mChangeLogFileResourceId);
        }
        if (is != null) {

            // Create a new XML Pull Parser.
            XmlPullParser parser = Xml.newPullParser();
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
            parser.setInput(is, null);
            parser.nextTag();

            // Create changelog obj that will contain all data
            chg = new ChangeLog();
            // Parse file
            readChangeLogNode(parser, chg);

            // Close inputstream
            is.close();
        } else {
            Log.d(TAG, "Changelog.xml not found");
            throw new ChangeLogException("Changelog.xml not found");
        }
    } catch (XmlPullParserException xpe) {
        Log.d(TAG, "XmlPullParseException while parsing changelog file", xpe);
        throw xpe;
    } catch (IOException ioe) {
        Log.d(TAG, "Error i/o with changelog.xml", ioe);
        throw ioe;
    }

    return chg;
}
 
public void restoreAccountAccessPermissions(byte[] data, int userId) {
    try {
        ByteArrayInputStream dataStream = new ByteArrayInputStream(data);
        XmlPullParser parser = Xml.newPullParser();
        parser.setInput(dataStream, StandardCharsets.UTF_8.name());
        PackageManager packageManager = mAccountManagerService.mContext.getPackageManager();

        final int permissionsOuterDepth = parser.getDepth();
        while (XmlUtils.nextElementWithin(parser, permissionsOuterDepth)) {
            if (!TAG_PERMISSIONS.equals(parser.getName())) {
                continue;
            }
            final int permissionOuterDepth = parser.getDepth();
            while (XmlUtils.nextElementWithin(parser, permissionOuterDepth)) {
                if (!TAG_PERMISSION.equals(parser.getName())) {
                    continue;
                }
                String accountDigest = parser.getAttributeValue(null, ATTR_ACCOUNT_SHA_256);
                if (TextUtils.isEmpty(accountDigest)) {
                    XmlUtils.skipCurrentTag(parser);
                }
                String packageName = parser.getAttributeValue(null, ATTR_PACKAGE);
                if (TextUtils.isEmpty(packageName)) {
                    XmlUtils.skipCurrentTag(parser);
                }
                String digest =  parser.getAttributeValue(null, ATTR_DIGEST);
                if (TextUtils.isEmpty(digest)) {
                    XmlUtils.skipCurrentTag(parser);
                }

                PendingAppPermission pendingAppPermission = new PendingAppPermission(
                        accountDigest, packageName, digest, userId);

                if (!pendingAppPermission.apply(packageManager)) {
                    synchronized (mLock) {
                        // Start watching before add pending to avoid a missed signal
                        if (mRestorePackageMonitor == null) {
                            mRestorePackageMonitor = new RestorePackageMonitor();
                            mRestorePackageMonitor.register(mAccountManagerService.mContext,
                                    mAccountManagerService.mHandler.getLooper(), true);
                        }
                        if (mRestorePendingAppPermissions == null) {
                            mRestorePendingAppPermissions = new ArrayList<>();
                        }
                        mRestorePendingAppPermissions.add(pendingAppPermission);
                    }
                }
            }
        }

        // Make sure we eventually prune the in-memory pending restores
        mRestoreCancelCommand = new CancelRestoreCommand();
        mAccountManagerService.mHandler.postDelayed(mRestoreCancelCommand,
                PENDING_RESTORE_TIMEOUT_MILLIS);
    } catch (XmlPullParserException | IOException e) {
        Log.e(TAG, "Error restoring app permissions", e);
    }
}
 
源代码12 项目: codeexamples-android   文件: XmlPullFeedParser.java
public List<Message> parse() {
	List<Message> messages = null;
	XmlPullParser parser = Xml.newPullParser();
	try {
		// auto-detect the encoding from the stream
		parser.setInput(this.getInputStream(), null);
		int eventType = parser.getEventType();
		Message currentMessage = null;
		boolean done = false;
		while (eventType != XmlPullParser.END_DOCUMENT && !done){
			String name = null;
			switch (eventType){
				case XmlPullParser.START_DOCUMENT:
					messages = new ArrayList<Message>();
					break;
				case XmlPullParser.START_TAG:
					name = parser.getName();
					if (name.equalsIgnoreCase(ITEM)){
						currentMessage = new Message();
					} else if (currentMessage != null){
						if (name.equalsIgnoreCase(LINK)){
							currentMessage.setLink(parser.nextText());
						} else if (name.equalsIgnoreCase(DESCRIPTION)){
							currentMessage.setDescription(parser.nextText());
						} else if (name.equalsIgnoreCase(PUB_DATE)){
							currentMessage.setDate(parser.nextText());
						} else if (name.equalsIgnoreCase(TITLE)){
							currentMessage.setTitle(parser.nextText());
						}	
					}
					break;
				case XmlPullParser.END_TAG:
					name = parser.getName();
					if (name.equalsIgnoreCase(ITEM) && currentMessage != null){
						messages.add(currentMessage);
					} else if (name.equalsIgnoreCase(CHANNEL)){
						done = true;
					}
					break;
			}
			eventType = parser.next();
		}
	} catch (Exception e) {
		Log.e("AndroidNews::PullFeedParser", e.getMessage(), e);
		throw new RuntimeException(e);
	}
	return messages;
}
 
源代码13 项目: 4pdaClient-plus   文件: CssStyle.java
private static CssStyle parseStyle(CssStyle cssStyle, InputStream in) throws XmlPullParserException, IOException {
    XmlPullParser parser = Xml.newPullParser();
    parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
    parser.setInput(in, null);


    int eventType = parser.getEventType();
    if (eventType == XmlPullParser.END_DOCUMENT)
        return null;

    while (parser.next() != XmlPullParser.END_DOCUMENT) {
        eventType = parser.getEventType();

        if (eventType == XmlPullParser.START_TAG) {
            String name = parser.getName().toLowerCase();
            if (name.equals("title")) {
                parser.next();
                eventType = parser.getEventType();
                if (eventType == XmlPullParser.TEXT)
                    cssStyle.Title = parser.getText();
            } else if (name.equals("version")) {
                parser.next();
                eventType = parser.getEventType();
                if (eventType == XmlPullParser.TEXT)
                    cssStyle.Version = parser.getText();
            } else if (name.equals("author")) {
                parser.next();
                eventType = parser.getEventType();
                if (eventType == XmlPullParser.TEXT)
                    cssStyle.Author = parser.getText();
            } else if (name.equals("comment")) {
                parser.next();
                eventType = parser.getEventType();
                if (eventType == XmlPullParser.TEXT)
                    cssStyle.Comment = parser.getText();
            } else if (name.equals("screenshot")) {
                cssStyle.ScreenShots.add(parseScreenShot(parser));
            }

        }
    }
    return cssStyle;
}
 
源代码14 项目: Android-Basics-Codes   文件: ParserXml.java
/**
 * ���������н���Xml�ļ�
 * @param is
 * 			������
 * @return
 * 			null:��ʾ����Xml�ļ�����
 */
public static List<NewsBean> parserXmlFromStream(InputStream is){
	List<NewsBean> newsList = new ArrayList<NewsBean>();
	try {
		// 1. ��ʼ��Xml������
		XmlPullParser parser = Xml.newPullParser();
		// 2. ����������
		parser.setInput(is, "utf-8");
		// 3. ��������
		int type = parser.getEventType();
		NewsBean bean = null;
		
		while(type != XmlPullParser.END_DOCUMENT){
			//��ʼ���߽�����ǩ
			String tag = parser.getName();
			switch (type) {
			case XmlPullParser.START_TAG://��ʼ��ǩ
				if("item".equals(tag)){			//ÿ��������Ŀ�Ŀ�ʼ��ǩ
					bean  = new NewsBean();
				}else if("title".equals(tag)){	//���ŵı���
					String title = parser.nextText();
					bean.setTitle(title);
				}else if("des".equals(tag)){	//���ŵ�����
					String des = parser.nextText();
					bean.setDes(des);
				}else if("image".equals(tag)){	//���ŵ�ͼƬ��Url
					String imageUrl = parser.nextText();
					bean.setImage(imageUrl);
				}else if("comment".equals(tag)){//���ŵ�����
					String comment = parser.nextText();
					bean.setComment(comment);
				}
				break;
			case XmlPullParser.END_TAG://������ǩ
				if("item".equals(tag)){			//ÿ��������Ŀ�Ľ�����ǩ
					newsList.add(bean);
				}
				break;

			default:
				break;
			}
			
			//�õ���һ���¼�
			type = parser.next();
		}
		
		return newsList;
	} catch (Exception e) {
		e.printStackTrace();
		return null;
	}
}
 
源代码15 项目: HeadsUp   文件: XmlUtils.java
/**
 * Read an ArrayList from an InputStream containing XML.  The stream can
 * previously have been written by writeListXml().
 *
 * @param in The InputStream from which to read.
 * @return ArrayList The resulting list.
 * @see #readMapXml
 * @see #readValueXml
 * @see #readThisListXml
 * @see #writeListXml
 */
public static ArrayList readListXml(InputStream in)
        throws XmlPullParserException, java.io.IOException {
    XmlPullParser parser = Xml.newPullParser();
    parser.setInput(in, null);
    return (ArrayList) readValueXml(parser, new String[1]);
}
 
源代码16 项目: XPrivacy   文件: XmlUtils.java
/**
 * Read an ArrayList from an InputStream containing XML.  The stream can
 * previously have been written by writeListXml().
 *
 * @param in The InputStream from which to read.
 *
 * @return ArrayList The resulting list.
 *
 * @see #readMapXml
 * @see #readValueXml
 * @see #readThisListXml
 * @see #writeListXml
 */
public static final ArrayList readListXml(InputStream in)
throws XmlPullParserException, java.io.IOException
{
    XmlPullParser   parser = Xml.newPullParser();
    parser.setInput(in, null);
    return (ArrayList)readValueXml(parser, new String[1]);
}
 
源代码17 项目: TowerCollector   文件: XmlUtils.java
/**
 * Read an ArrayList from an InputStream containing XML.  The stream can
 * previously have been written by writeListXml().
 *
 * @param in The InputStream from which to read.
 *
 * @return ArrayList The resulting list.
 *
 * @see #readMapXml
 * @see #readValueXml
 * @see #readThisListXml
 * @see #writeListXml
 */
public static final ArrayList readListXml(InputStream in)
        throws XmlPullParserException, java.io.IOException
{
    XmlPullParser   parser = Xml.newPullParser();
    parser.setInput(in, null);
    return (ArrayList)readValueXml(parser, new String[1]);
}
 
源代码18 项目: HtmlCompat   文件: XmlUtils.java
/**
 * Read an ArrayList from an InputStream containing XML.  The stream can
 * previously have been written by writeListXml().
 *
 * @param in The InputStream from which to read.
 *
 * @return ArrayList The resulting list.
 *
 * @see #readMapXml
 * @see #readValueXml
 * @see #readThisListXml
 * @see #writeListXml
 */
public static final ArrayList readListXml(InputStream in)
        throws XmlPullParserException, java.io.IOException
{
    XmlPullParser   parser = Xml.newPullParser();
    parser.setInput(in, null);
    return (ArrayList)readValueXml(parser, new String[1]);
}
 
源代码19 项目: J2ME-Loader   文件: XmlUtils.java
/**
 * Read a HashMap from an InputStream containing XML.  The stream can
 * previously have been written by writeMapXml().
 *
 * @param in The InputStream from which to read.
 * @return HashMap The resulting map.
 * @see #readListXml
 * @see #readValueXml
 * @see #readThisMapXml
 * #see #writeMapXml
 */
@SuppressWarnings("unchecked")
public static final HashMap<String, Object> readMapXml(InputStream in)
		throws XmlPullParserException, java.io.IOException {
	XmlPullParser parser = Xml.newPullParser();
	parser.setInput(in, "UTF-8");
	return (HashMap<String, Object>) readValueXml(parser, new String[1]);
}
 
源代码20 项目: Android-PreferencesManager   文件: XmlUtils.java
/**
 * Read a HashMap from an InputStream containing XML. The stream can
 * previously have been written by writeMapXml().
 *
 * @param in The InputStream from which to read.
 * @return HashMap The resulting map.
 * @see #readListXml
 * @see #readValueXml
 * @see #readThisMapXml #see #writeMapXml
 */
public static final HashMap readMapXml(InputStream in) throws XmlPullParserException, java.io.IOException {
    XmlPullParser parser = Xml.newPullParser();
    parser.setInput(in, null);
    return (HashMap) readValueXml(parser, new String[1]);
}