1 import org.jivesoftware.smack.provider.IQProvider; 2 import org.jivesoftware.smack.packet.DefaultPacketExtension; 3 import org.jivesoftware.smack.packet.IQ; 4 import org.jivesoftware.smack.provider.ProviderManager; 5 6 7 public final class XIQProvider implements IQProvider{ 8 9 10 public XIQProvider(){ 11 } 13 14 17 public static void install(String elementName,String namespace){ 18 ProviderManager.addIQProvider(elementName,namespace,new XIQProvider()); 19 } 20 21 25 public IQ parseIQ(org.xmlpull.v1.XmlPullParser parser) throws Exception { 26 XIQ result=new XIQ(); 27 String tagname=parser.getName(); 28 String namespace=parser.getNamespace(); 29 if(namespace==null || namespace.equals("")){ 30 return result; 31 } 32 DefaultPacketExtension extension=new DefaultPacketExtension(tagname,namespace); 33 int event=parser.getEventType(); 35 String currentTag=""; 36 String currentContent=""; 37 38 while (!(event==parser.END_TAG && parser.getName().equals(tagname))){ 39 if(event==parser.START_TAG){ 40 currentTag=parser.getName(); 41 if(parser.isEmptyElementTag()){ 42 extension.setValue(currentTag,""); 43 currentTag=""; 44 } 45 } 46 if(event==parser.TEXT && (!currentTag.equals(""))){ 47 currentContent=parser.getText(); 48 } 49 if(event==parser.END_TAG && (!currentTag.equals(""))){ 50 extension.setValue(currentTag,currentContent); 51 currentTag=""; 52 } 53 event=parser.next(); 54 } 55 result.addExtension(extension); 56 return result; 57 } 58 } | Popular Tags |