XmlResourceParser解析XML

xml如下:

<providers_product>	
	<provider id="netease_126" label="126" domain="126.com"
		largeicon="@drawable/provider_126_large"
		smallicon="@drawable/provider_126_small">
		<incoming uri="imap+ssl+trustallcerts://imap.126.com" username="$user" />
		<outgoing uri="smtp+ssl+trustallcerts://smtp.126.com" username="$user" />
	</provider>
	
	<provider id="netease_yeah" label="yeah" domain="yeah.net"
		largeicon="@drawable/provider_yeah_large"
		smallicon="@drawable/provider_yeah_small">
		<incoming uri="imap+ssl+trustallcerts://imap.yeah.net" username="$user" />
		<outgoing uri="smtp+ssl+trustallcerts://smtp.yeah.net" username="$user" />
	</provider>
</providers_product>

解析代码如下:

 ArrayList<Provider> providers = new ArrayList<Provider>();
	        try {
	            XmlResourceParser xml = context.getResources().getXml(R.xml.providers_product);
	            int xmlEventType;
	            Provider provider = null;
	            while ((xmlEventType = xml.next()) != XmlResourceParser.END_DOCUMENT) {
                        //一级标签provider
                        if (xmlEventType == XmlResourceParser.START_TAG && "provider".equals(xml.getName())) {
	                    provider = new Provider();
	                    provider.id = getXmlAttribute(context, xml, "id");
	                    provider.label = getXmlAttribute(context, xml, "label");
	                    provider.domain = getXmlAttribute(context, xml, "domain");
	                    provider.note = getXmlAttribute(context, xml, "note");
	                    provider.largeIcon = getXmlAttribute(context, xml, "largeicon");
	                    provider.smallIcon = getXmlAttribute(context, xml, "smallicon");
                         //二级标签incoming,outgoing
                         } else if (xmlEventType == XmlResourceParser.START_TAG && "incoming".equals(xml.getName()) && provider != null) {
	                    provider.incomingUriTemplate = new URI(getXmlAttribute(context, xml, "uri"));
	                    provider.incomingUsernameTemplate = getXmlAttribute(context, xml, "username");
	                } else if (xmlEventType == XmlResourceParser.START_TAG && "outgoing".equals(xml.getName()) && provider != null) {
	                    provider.outgoingUriTemplate = new URI(getXmlAttribute(context, xml, "uri"));
	                    provider.outgoingUsernameTemplate = getXmlAttribute(context, xml, "username");
	                } else if (xmlEventType == XmlResourceParser.END_TAG && "provider".equals(xml.getName()) && provider != null) {
	                    providers.add(provider);
	                }
	            }
	        } catch (Exception e) {
	            Log.e(LOG_TAG, "Error while trying to load provider settings.", e);
	        }
	        return providers.toArray(new Provider[] {});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值